Docker commit方法镜像制作

一、前期准备

1、下载 centos 镜像,进入容器,安装 wget

docker pull centos
docker run -it centos bash

[root@web1 ~]# docker run -it centos bash         #进入容器
[root@4f1f1ca319f2 /]# cd
[root@4f1f1ca319f2 ~]# ls
anaconda-ks.cfg
[root@4f1f1ca319f2 ~]# cd /etc/yum.repos.d/       #配置yum源
[root@4f1f1ca319f2 yum.repos.d]# yum install wget -y     #安装wget,默认没有wget安装

2、安装软件源

mkdir backup
mv c*  /etc/yum.repo.d/bakcup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget https://mirrors.aliyun.com/centos/7.6.1810/extras/x86_64/Packages/epel-release-7-11.noarch.rpm

3、安装软件,比如 nginx

yum install nginx -y

说明,这种制作方法,其实是通过制作 container 的方法进行,在里面直接操作安装过程。其实也可以通过 DockerFile 进行安装。

二、制作镜像

说明,下面制作镜像先用之前的 nginx 镜像做的副本,下面才是 centos 镜像

1、使用 docker commit 来提交容器副本

-m 提交时的描述文字

dock commit -m 容器 镜像名
docker commit -m 'add nginx images' mynginx zxg/my_nginx
docker commit -m 'add nginx images' mynginx zxg/my_nginx:v1
docker images
docker ps -a

2、制作镜像

[root@web1 ~]# docker commit -m 'add nginx images' mynginx zxg/my_nginx

sha256:f07837869dfc057273c8fd4dad1ddd7f391abb7c75dd4ecf8f84e33e84bc6b0d

然后使用 docker images 可以查看当前已经制作的镜像。
[root@web1 ~]# docker images

3、加版本号

[root@web1 ~]# docker commit -m 'add nginx images' mynginx zxg/my_nginx:v1

sha256:b164f4c07c6407420327a48dc0259c52f31cc3ae13ca0b292b8ac5cad1b0052b

4、使用当前镜像创建容器

[root@web1 ~]# docker run -d --name my_nginx zxg/my_nginx nginx

使用docker ps -a 查看当前运行的容器。

完整的 centos 镜像制作

过程如下:

[root@web1 ~]# docker ps
[root@web1 ~]# docker commit -m 'add centos-nginx' 2940076be5f7 zxg/centos_nginx:v1

sha256:7c6604cacec13e7caf5b4f99c514009c43df88cf59c69b2ff5a608dfc8216eae
[root@web1 ~]# docker images

[root@web1 ~]# docker run -it  --name centos-nginx zxg/centos_nginx:v1  /bin/bash
[root@e93232ab8601 /]# rpm -qa nginx
nginx-1.12.2-3.el7.x86_64
[root@e93232ab8601 /]#
//另外开一个窗口

[root@web1 ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS               NAMES
e93232ab8601        zxg/centos_nginx:v1   "/bin/bash"         57 seconds ago      Up 55 seconds                           centos-nginx

三、制作好的镜像可以上传官网(需要注册账号)

docker login https:hub.docker.com
docker tag b326027dcf42 docker.io/myname/mynginx    #打标签
docker push docker.io/myname/mynginx
关于我
loading