docker(三)docker镜像和镜像发布方法
一、从公网docker hub 拉取image
~ # 搜索docker search centos
~ » docker pull centos admin@steven-2 Using default tag: latest latest: Pulling from library/centos 469cfcc7a4b3: Downloading 12.28MB/73.17MB
或者:把之前下载好的image镜像导入image
docker load -i /root/centos.xxx.xxx.xx.tar. # -i 指定载入的镜像归档
二、查看 images 列表,docker 的镜像和数据都是在/var/lib/docker 目录下。
~ » docker images admin@steven-2 REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest ae513a47849c 3 weeks ago 109MB centos latest e934aafc2206 7 weeks ago 199MB ------------------------------------------------------------
三、制作docker iamage 的两种方法
1、docker commit # 保存container 的当前状态到 image 后,然后生成对应的 image
例:创建一个安装好的 nmap 黑客扫描工具的容器镜像
~ » docker run -it centos /bin/bash admin@steven-2 [root@ca699c8d7b09 /]# yum -y install nmap-ncat # 在 container中安装 nmap-ncat Loaded plugins: fastestmirror, ovl base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates
。。。。
2、根据容器当前状态做一个 image 镜像:创建一个安装了 nmap-ncat 工具的centos镜像。
语法:docker commit <container 的 ID> <image_name>
~ » docker ps -a # 查看容器ID: admin@steven-2 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ca699c8d7b09 centos "/bin/bash" 3 minutes ago Exited (127) About a minute ago priceless_lumiere fafd41a29849 nginx "nginx -g 'daemon of…" 32 minutes ago Created webserver ------------------------------------------------------------ ~ » docker commit ca699c8d7b09 centos:nmap admin@steven-2 sha256:34bad9a4e5c9c623239ee4b5f2946ef6eba38dffcfb6018bc5d41a35531a7a01 ~ » docker images admin@steven-2 REPOSITORY TAG IMAGE ID CREATED SIZE centos nmap 34bad9a4e5c9 49 seconds ago 269MB nginx latest ae513a47849c 3 weeks ago 109MB centos latest e934aafc2206 7 weeks ago 199MB
使用新建的 centos:nmap 镜像,生成一台容器实例:
~ » docker run -ti centos:nmap /bin/bash admin@steven-2 [root@f2218082e046 /]# rpm -qa nmap -ncat
方法二:使用 docker build 创建一个基于 centos 的httpd wdb服务器镜像。