一、利用 commit 製作鏡像
docker commit 語法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Options:
-a :提交的鏡像作者;
-c :使用Dockerfile指令來創建鏡像;
-m :提交時的說明文字;
-p :在commit時,將容器暫停
1、在公有鏡像拉取(pull)鏡像模板
[root@localhost ~]# docker pull centos
2、啓動 centos ,進去容器
[root@localhost ~]# docker run -tip 80:80 --name centos-nginx -v /data/nginx/:/usr/local/nginx centos /bin/bash
[root@localhost nginx]# docker attach centos-nginx
[root@81d34089ea91 ~]# yum install -y gcc* && zlib && zlib-devel && pcre && pcre-devel && openssl && openssl-deve && make
進入容器裏面編譯安裝 ningx
[root@81d34089ea91 ~]# wget http://nginx.org/download/nginx-1.15.5.tar.gz
編譯安裝 nginx ,啓動 nginx
[root@81d34089ea91 ~]# tar -xf nginx-1.15.5.tar.gz
[root@81d34089ea91 ~]# cd nginx-1.15.5
[root@81d34089ea91 ~]# ./configure –prefix=/usr/local/nginx
[root@81d34089ea91 ~]# make && make install
[root@81d34089ea91 ~]# /usr/local/nginx/sbin/nginx
查看開啓的容器
[root@localhost ~]# docker ps
3、運用 docker commit 製作鏡像
[root@localhost ~]# docker commit 81d34089ea91 mycentos-nginx
sha256:04ad699dbfc71ce5a696ed3b46870d2eaca897865802e54d3b7b989bc0240804
[root@localhost ~]#
二、把鏡像推送到 Docker Hub 上
推送鏡像的規範是:
docker push "Docker Hub容器註冊用戶名"/鏡像名
1、到 Docker Hub 官網 註冊 Docker Hub 賬號
2、查看容器ID,對應的鏡像標準標籤名
3、推送鏡像
先在本地終登錄: docker login
接着上傳鏡像:# docker push [鏡像名]
5、上傳完成後就在 Docker Hub賬號 看到自己上傳的鏡像
6、測試另一臺服務器(pull)Docker Hub 上傳的鏡像
先登錄賬號,再拉取(pull)鏡像
7、啓動拉取的鏡像,進入容器並且啓動 nginx 服務
[root@localhost ~]# docker run -tidp 80:80 --name centos -v /data/nginx/:/usr/local/nginx docker.io/rosendeng/mycentos-nginx
adad13d3d51458768fb0117bd17480129387c52d17376a7831302f200440d91b
[root@localhost ~]# docker attach adad13d3d514
三、導出容器保存,遷移可用
1、查看要導出的容器:docker ps
通過 export 導出容器:docker export 81d34089ea91 > docker-nginx.tar
2、把本地導出的容器遷移到另外一臺電腦上
3、通過 improt 導入容器:docker import docker-nginx.tar
或者導入容器快照(可添加命名和版本號):cat docker-nginx.tar | docker import - nginx:v1.0
4、可用 tag 修改容器名字和版本信息
5、啓動運行對應的容器
docker run -tidp 80:80 --name centos-nginx -v /data/nginx/:/usr/local/nginx centos-nginx:v1.2
進去啓動對應的 nginx 服務