镜像的使用(6-13)
一、管理和使用本地docker主机镜像
列出镜像列表
REPOSTORY :表示镜像的仓库源
TAG :表示镜像的标签
IMAGE ID :镜像ID
CREATED :镜像创建时间
SIZE :镜像大小
(同一个仓库源中可以有多个TAG,用REPOSTTY + TAG来区分镜像)
获取一个新的镜像
当我们在主机上使用一个不存在的镜像时,docker会自动下载这个镜像。如果我们想要预先现在这个镜像可以用 docker pull [镜像名字] 这命令
现在再列出镜像列表,已经添加进去了
现在就可以用这个镜像运行容器了
查找镜像
我们可以从docker hub上查找镜像,网址:https://hub.docker.com/
也可以通过命令来查找镜像:docker search [NAME]
NAME :镜像仓库源的名称
DSCRIPTION :描述
OFFICIAL :是否官方发布
拖取镜像
当我们从镜像仓库下载的镜像不能满足我们的需求时,有两种解决办法:
- 通过已有的容器更新镜像并提交。
- 使用dockerfile指令创建一个新的镜像。
更新镜像
先创建一个容器
然后在容器内用apt-get update命令更新源
完成操作后可用exit命令退出容器
此时容器ID为10b42799e3d2,假设更新完了,现在需要提交:docker commit命令来提交。
-m :提交的描述信息
-a :指定镜像的作者
10b42799e3d2 :容器ID
root/Ubuntu:v2 :指定要创建的目标镜像名
可以看到已经添加更新了
构建镜像
使用docker build命令构建一个镜像。在此之前先要创建一个Dockerfile文件夹,其中包括一组指令来告诉Docker如何构建我们的镜像。
FROM centos:6.7
MAINTAINER Fisher "fisher@sudops.com"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd –D
镜像是分层处理的嘛,所以每个命令都是在新的上一层的基础上进行改进。
FORM :指定是使用哪个镜像源
RUN :告诉docker在镜像中执行什么命令,安装什么
然后使用docker build命令进行镜像的创建
-t :指定要创建的目标镜像名
. :(命令最后有一个点)Dockerfile所在目录,可以指定Dockerfile所在的绝对目录
可以看到确实创建了镜像
设置镜像标签
docker tag b8296cd99e69 runoob/centos:dev
docker tag [ID] [用户名称]/[镜像源名]:[新标签名]