docker镜像创建与基本使用
查看镜像在docker环境安装完成之后,对docker的使用主要集中在docker镜像的管理与使用。首先是docker镜像的管理,查看本地有哪些镜像可以使用命令:docker images运行镜像查看到本地有哪些镜像后,就可以来运行已有的镜像了,使用命令:docker run -t -i ubuntu:15.10 /bin/bash如果该镜像不存在,会自动尝试下载对
·
查看镜像
在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
-m:提交的描述信息
-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
使用上述命令的前提是你已经在https://hub.docker.com/上注册了账户
dockerfile
使用dockerfile的方式其实是相当于从零开始创建一个新的镜像,具体步骤是先写好一个dockerfile文件。然后使用docker build命令来构建镜像,构建时会从网上下载及更新基础镜像与相关软件。通常一个dockerfile的文件格式如下:
FROM centos:6.7
MAINTAINER Macy "five3@163.com"
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
它与shell脚本类似,是一个批处理的过程,但是它具有自己的命令和语法。dockerfile的命令都是大写的,比如:FROM、RUN等。从上面的dockerfile我们可以大概知道,构建的新镜像都做了什么。
首先,它是基于centos6.7版本来构建的【所有的docker镜像都是基于一个linux系统来的,因为首先它得具备一个完整的运行生态,当然也可以是一个非常精简的linux系统,比如:boot2docker】
其次,它的维护者是Macy,邮箱:five3@163.com然后,在基础的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
-t :指定要创建的目标镜像名,注意名称只能是小写字母
构建完成之后,可以通过docker images来查看镜像文件,还可以直接运行该镜像:
docker run -t -i five3/centos:6.7 /bin/bash
启动后通过id命令来检查用户five3是否创建成功
id five3
更多推荐
已为社区贡献2条内容
所有评论(0)