(04)【Docker学习笔记】之 Docker镜像使用

如果要使用的镜像不存在,docker会自动从docker镜像仓库中下载,默认时从Docker Hub公共镜像源下载。

列出镜像列表

$ docker images

所以,我们如果要使用版本为7的centos系统镜像来运行容器时,命令如下:

$ docker run -t -i ubuntu:15.10 /bin/bash 

获取一个新的镜像:(如果想预先下载一个镜像可以用docker pull命令)

$ docker pull centos

下载完成后,可以使用这个镜像运行容器。

查找镜像

$ docker search httpd

NAME: 镜像仓库源的名称

DESCRIPTION: 镜像的描述

OFFICIAL: 是否 docker 官方发布

stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。

AUTOMATED: 自动构建。

下载镜像并使用

$ docker pull httpd

$ docker run httpd

删除镜像

$ docker rmi <镜像ID 或 容器名称>

创建镜像

1.从已创建容器中更新镜像并提交

创建一个容器:

$ docker run -it centos:7 /bin/bash

在容器内使用yum install命令更新,完成之后用exit退出(更新相当于我们更改了容器)

然后通过docker commint提交容器副本。

$ docker commit -m="has update" -a="hengda" 1fa60c6a4ff5 hengda/centos7:v1

sha256:f6aa52aa772cde180acfa8410f240e025cace8dfef79540e5966b77e9e2d4e1b

使用我们的镜像hengda/centos7:v1启动一个容器

2.使用Dockerfile 指令创建新镜像

用docker bulid创建一个新的镜像:(先创建Dockerfile文件,写入一组指令告诉Docker如何构建镜像)

FROM    centos:7
MAINTAINER     Hengda "[email protected]"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd hengda
RUN     /bin/echo 'hengda:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D

每个指令的前缀都是大写的,每个指令都会在镜像上创建一个新的层。

FROM指定使用的镜像源。

RUN告诉docker在镜像内执行命令包括安装程序等。

然后docker build使用Dockerfile文件构建镜像。

-t :指定要创建的目标镜像名

. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

用docker images可看到刚才创建的镜像,ID为8dc34b8918f3

使用新的镜像创建容器

$ docker run -it hengda/centos:7 /bin/bash

设置镜像标签

使用docker tag命令,为镜像添加新的标签。

docker tag 镜像ID,这里是 860c279d2fec ,用户名称、镜像源名(repository name)和新的标签名(tag)。

使用 docker images 命令可以看到,ID为860c279d2fec的镜像多一个标签。

发布了58 篇原创文章 · 获赞 15 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/one312/article/details/103766105