Skip to content

镜像构建和使用

镜像的创建与基本使用

该部分引用自 CSDN

查看镜像

在 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

创建镜像

一种方式是通过镜像修改的方式创建镜像

>   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 文件。然后使用 docker build 命令来构建镜像,构建时会从网上下载及更新基础镜像与相关软件。

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 的命令都是大写的,比如:FROMRUN 等。从上面的 Dockerfile 我们可以大概知道,构建的新镜像都做了什么。

以上述代码为例:

  1. 它是基于 centos6.7 版本来构建的
  2. 它的维护者是 Macy ,邮箱: five3@163.com
  3. 在基础的 centos 之上,会运行几条 RUN 后面的命令。包括修改 root 密码,添加一个 five3 用户,设置系统的默认编码为 utf-8
  4. 通过 EXPOSE 命令对外开发了 22 和 80 端口。即 ssh 端口与 WEB 端口
  5. 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