容器與鏡像的轉換

容器與鏡像可以隨時的轉換,如圖所示
在這裏插入圖片描述
除了dockerfile外,其他的我們一一來做,首先是我們需要一個dockerhub的賬號
從dockerhub上pull鏡像

[root@node7 ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
000eee12ec04: Pull complete 
eb22865337de: Pull complete 
bee5d581ef8b: Pull complete 
Digest: sha256:50cf965a6e08ec5784009d0fccb380fc479826b6e0e65684d9879170a9df8566
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

修改tag

[root@node7 ~]# docker tag busybox ouddd/busybox:v0.1

登錄

[root@node7 ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: ouddd
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

重新pull

[root@node7 ~]# docker push ouddd/busybox:v0.1
The push refers to repository [docker.io/ouddd/busybox]
eac247cb7af5: Mounted from library/busybox 
v0.1: digest: sha256:24fd20af232ca4ab5efbf1aeae7510252e2b60b15e9a78947467340607cd2ea2 size: 527

run命令,並且做了一些操作。

[root@node7 ~]# docker run -it  --name b1 busybox sh
/ # ls
bin   dev   etc   home  proc  root  sys   tmp   usr   var
/ # mkdir -p /data/html
/ # echo "hello busybox" >> /data/html/index.html

commit,重新打開一個終端

[root@node7 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
0165e61d2221        busybox             "sh"                2 minutes ago       Up 2 minutes                            b1
[root@node7 ~]# docker commit -p -c 'CMD ["/bin/httpd","-f","-h","/data/html"]' b1 ouddd/web:v0.1
sha256:01451ccb4b4b5d17c10f23465b6c603fbcd3a97e26550eb548e828223cc20dfb

通過commit命令 我們就可以重新生成一個鏡像了,並且我們修改原來的CMD。
當我們重新run的時候,我們之前做的操作已經被保存下來了。

[root@node7 ~]# docker run -it --name b2 ouddd/web:v0.1 sh
/ # ls
bin   data  dev   etc   home  proc  root  sys   tmp   usr   var
/ # cat /data/html/index.html 
hello busybox

類似的stop/start/restart等

[root@node7 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
cb8d2c61dd80        ouddd/web:v0.1      "/bin/httpd -f -h /d…"   5 seconds ago       Up 4 seconds                            b2
[root@node7 ~]# docker stop cb8d2c61dd80
cb8d2c61dd80
[root@node7 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
cb8d2c61dd80        ouddd/web:v0.1      "/bin/httpd -f -h /d…"   34 seconds ago      Exited (137) 9 seconds ago                       b2
[root@node7 ~]# docker start cb8d2c61dd80
cb8d2c61dd80
[root@node7 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
cb8d2c61dd80        ouddd/web:v0.1      "/bin/httpd -f -h /d…"   48 seconds ago      Up 2 seconds                            b2
[root@node7 ~]# docker restart cb8d2c61dd80
cb8d2c61dd80
[root@node7 ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
cb8d2c61dd80        ouddd/web:v0.1      "/bin/httpd -f -h /d…"   About a minute ago   Up 3 seconds                            b2

如果我們想把一個鏡像傳到另一臺主機上,應該怎麼辦呢,這個時候就用到了save和load了。

[root@node7 ~]# docker save ouddd/web:v0.1 -o web.tar
[root@node7 ~]# ls
web.tar
[root@node7 ~]# docker image ls
REPOSITORY                                   TAG                 IMAGE ID            CREATED             SIZE
[root@node7 ~]# docker load -i web.tar 
6995626d0293: Loading layer [==================================================>]   5.12kB/5.12kB
Loaded image: ouddd/web:v0.1
[root@node7 ~]# docker image ls
REPOSITORY                                   TAG                 IMAGE ID            CREATED             SIZE
ouddd/web                                    v0.1                01451ccb4b4b        9 minutes ago       1.22MB
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章