查看镜像
在docker环境安装完成之后,对docker的使用主要集中在docker镜像的管理与使用。首先是docker镜像的管理,查看本地有哪些镜像可以使用命令:
- docker images
运行镜像
查看到本地有哪些镜像后,就可以来运行已有的镜像了,使用命令:- docker run -t -i ubuntu:15.10 /bin/bash
如果该镜像不存在,会自动尝试下载对应的镜像,只要远程镜像库中有同名的镜像。远程镜像库默认地址为:https://hub.docker.com/。
搜索/下载镜像
当然我们也可以主动的先把镜像下载到本地,再运行。而下载之前还可以进行下搜索,命令如下:
- docker search selenium/hub
- docker pull selenium/hub
- docker run -it selenium/hub
创建镜像
我们从镜像仓库下载的,都是别人事先做好的。如果我们需要一个定制的镜像,就必须得自己动手了。自己创建一个镜像有2种方式:- 基于一个现有的镜像来修改
- 基于dockerfile来创建
镜像修改
镜像修改的方式是先运行一个现有的镜像,然后在运行的容器中进行软件的更新操作。比如:安装软件、服务之类。- >docker run -t -i ubuntu:15.10 /bin/bash
- root@e218edb10161:/# apt-get update
- root@e218edb10161:/# apt-get install wget
- root@e218edb10161:/# exit
- docker commit -m="with wget" -a="five3" e218edb10161 five3/ubuntu:v2
-a:指定镜像作者
e218edb10161:容器ID,在容器执行时可以在命令行开头查看。比如:root@e218edb10161中@之后的内容。此外还可以通过docker ps来查看
five3/ubuntu:v2:指定要创建的目标镜像名
接着,我们就可以使用新定制的镜像了。
- docker run -t -i five3/ubuntu:v2 /bin/bash
目前为止,你保存的新镜像还只是在本地。如果你希望把它更新到docker仓库,可以使用如下命令:
- docker push five3/ubuntu:v2
dockerfile
使用dockerfile的方式其实是相当于从零开始创建一个新的镜像,具体步骤是先写好一个dockerfile文件。然后使用docker build命令来构建镜像,构建时会从网上下载及更新基础镜像与相关软件。通常一个dockerfile的文件格式如下:
- FROM centos:6.7
- MAINTAINER Macy "[email protected]"
- RUN /bin/echo 'root:123456' |chpasswd
- RUN useradd five3
- RUN /bin/echo 'five3:123456' |chpasswd
- RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
- EXPOSE 22
- EXPOSE 80
- CMD /usr/sbin/sshd -D
首先,它是基于centos6.7版本来构建的【所有的docker镜像都是基于一个linux系统来的,因为首先它得具备一个完整的运行生态,当然也可以是一个非常精简的linux系统,比如:boot2docker】
其次,它的维护者是Macy,邮箱:[email protected]然后,在基础的centos之上,会运行几条RUN后面的命令。包括修改root密码,添加一个five3用户,设置系统的默认编码为utf-8
接着,通过EXPOSE命令对外开发了22和80端口。即ssh端口与WEB端口
最后,CMD命令用于设置镜像运行后的启动命令。这里是默认会启动ssh服务。这样当镜像运行之后我们就可以通过ssh连接该容器了
这里需要注意的是,22、80是容器内部的软件端口,虽然对外部开放了,但是外部需要有一个端口映射;在容器之外要连接这2个端口需要连接外部的映射端口。关于查看外部映射端口可以使用如下命令:
- docker port <container ID|container Name> 22
- docker port <container ID|container Name> 80
在dockerfile完成之后,我们就可以build自定义的镜像了。具体命令如下:
- docker build -t five3/centos:6.7 /path/to/dockerfile
构建完成之后,可以通过docker images来查看镜像文件,还可以直接运行该镜像:
- docker run -t -i five3/centos:6.7 /bin/bash
- id five3