怎樣從倉庫下載的鏡像,變成容器,並在容器中制作項目,再將容器變成鏡像,然后將鏡像推送到倉庫?
一:從官網下載鏡像
官方的https://hub.docker.com/提供了數十萬個鏡像提供大家下載
以拉取個人公有centos7.3鏡像為例:
拉取方式為
# docker pull 用戶/倉庫:標簽 》docker pull kennyyaohong/public:centos7.3
二:進行項目
1.啟動容器
# -it 以交互模式啟動一個容器 #--name 命名容器 #-d 后台運行容器,並返回容器ID #docker run -it --name 定義容器名 -d 鏡像名:標簽 》docker run -it --name container_centos7.3 -d kennyyaohong/public:centos7.3
》docker ps
CONTAINER ID IMAGE NAMES COMMAND CREATED STATUS PORTS
4bd480b4ac28 kennyyaohong/public:centos7.3 container_centos7.3 "/bin/bash" 4 seconds ago Up 3 seconds
2.進入容器
#exec :在運行的容器中執行命令 #-d :分離模式: 在后台運行 #-i :即使沒有附加也保持STDIN 打開 #-t :分配一個偽終端
》docker exec -ti container_centos7.3 /bin/bash [root@d3dfc0a17d1a /]#
3.進行項目
進入docker進行要開展的項目
[root@4bd480b4ac28 /]# mkdir project [root@4bd480b4ac28 /]# cd project/ [root@4bd480b4ac28 project]# ls [root@4bd480b4ac28 project]# vi test.sh [root@4bd480b4ac28 project]# sh test.sh hello
三:將容器變成鏡像
#-a :提交的鏡像作者;
#-c :使用Dockerfile指令來創建鏡像;
#-m :提交時的說明文字;
#-p :在commit時,將容器暫停。
# docker commit -m “提交說明文字” -a “作者” 要提交的容器名 提交后的鏡像名:提交后的鏡像tag名
》docker commit -m "my_project" -a "kennyyaohong" container_centos7.3 myproject_centos7.3:centos7.3 sha256:e12a9ec48ab76d4114e4d80293eb994bafb5d49e974143766d08ab9f74a2d193
#容器變為鏡像后的
host-172-17-17-115:~ # docker images; REPOSITORY TAG IMAGE ID CREATED SIZE myproject_centos7.3 centos7.3 e12a9ec48ab7 2 seconds ago 258MB
四:將鏡像推入倉庫
1.重新定義標簽
#docker tag 鏡像id 要推入倉庫的用戶名/要推入的倉庫名:新定義的tag 》docker tag e12a9ec48ab7 kennyyaohong/public:myproject_centos7.3
#docker push 要推入倉庫的用戶名/要推入的倉庫名:鏡像標簽
》docker push kennyyaohong/public:myproject_centos7.3 The push refers to a repository [docker.io/kennyyaohong/public] 193b0484e158: Layer already exists 34e7b85d83e4: Layer already exists myproject_centos7.3: digest: sha256:5ffa998f3fc91e965d3b2e65ceefbc30a0bce49359058fba39e9386206a84bdc size: 948