目录
3. 容器镜像实操收起
3.1 Docker commit构建容器镜像
3.2 退出当前容器,删除本节实验所涉及到的容器
3.3 Dockerfile构建容器镜像
3.4 删除本节实验所涉及到的容器
3.5 搭建私有镜像仓库注册表
3. 容器镜像实操收起
3.1 Docker commit构建容器镜像
(1)拉取centos7镜像:
docker pull centos:centos7
运行 centos容器
docker run -t -d centos:centos7
(2)进入该容器并验证vim可用性:
docker container ls
注意:此处通过docker exec 命令进入容器,其具体使用后续章节将会涉及。使用上一行命令查询到的centos容器ID替换【容器ID】。
docker exec -it 容器ID bash vim
(3)在容器内下载安装vim:
yum install -y vim
注意:若出现无法下载存储库“AppStream”的元数据:无法准备内部镜像列表:镜像列表中没有 URL。请在容器内输入以下命令更换yum源,再重新安装vim。
cd /etc/yum.repos.d/ sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* yum update -y yum install -y vim
等待安装完毕以后,再次验证vim可用性如下图所示:
vim --version
④退出容器,将当前容器构建为新镜像。
exit
注意:请使用第(2)步中查询到的centos容器ID替换命令中的【容器ID】
docker commit 容器ID centos-vim docker image ls
说明:通过对比centos容器镜像可以发现,centos-vim容器镜像大小发生改变。 (5)删除前一个容器,并利用centos-vim镜像运行一个新容器:
docker container ls
注意:请使用上一行命令回显的容器ID替换后续命令中的【容器ID】
docker stop 容器ID docker rm 容器ID docker run -d -t centos-vim
(6)验证新容器内vim可用性:
docker container ls
注意:请使用上一行命令查询到的容器ID替换后续命令中的【容器ID】
docker exec -it 容器ID bash vim --help
3.2 退出当前容器,删除本节实验所涉及到的容器
退出当前容器。
exit
查询容器ID,停止并删除。
docker container ls docker stop 容器ID docker rm 容器ID
3.3 Dockerfile构建容器镜像
(1)创建Dockerfile文件在/root路径下创建一个Dockerfile文件
touch dockerfile
(2)使用vim编辑Dockerfile文件:
vim dockerfile
输入i,将以下代码写入Dockerfile文件中,键入wq保存退出:
FROM centos:centos7 MAINTAINER Iris@huawei.com ENV HOSTNAME webserver EXPOSE 80 RUN yum install -y httpd vi && yum clean all VOLUME ["/var/www/html"] CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
(3)使用docker build命令构建容器镜像:
docker build -t httpd-centos -f dockerfile /root
④查看镜像列表,并利用新镜像运行容器。
docker image ls docker run -d -p 80:80 httpd-centos
(5)验证该容器Web服务页面: 在个人操作终端浏览器内输入 http://EIP:80
注意:服务器的公网IP替换网址中的【EIP】。
3.4 删除本节实验所涉及到的容器
查询容器ID,停止并删除。
docker container ls docker stop 容器ID docker rm 容器ID
3.5 搭建私有镜像仓库注册表
(1)运行私有镜像仓库注册表容器:
docker run -d -p 5000:5000 registry
说明:私有镜像仓库服务监听端口为5000,此处利用-p 5000:5000将容器5000端口映射到主机5000端口。
(2)利用docker tag命令修改镜像名称:
docker tag httpd-centos localhost:5000/http:V1
③将本地镜像上传至私有镜像仓库:
docker push localhost:5000/http:V1
(4)查看私有镜像仓库registry中镜像信息。 列出所有的本地注册表仓库的镜像:
curl -X GET http://localhost:5000/v2/_catalog curl -X GET http://localhost:5000/v2/http/tags/list
⑤删除本地容器镜像,并从私有镜像仓库下载:
注意:删除镜像前需要先删除对应容器,否则会删除失败。
docker rmi localhost:5000/http:V1 docker rmi httpd-centos docker pull localhost:5000/http:V1