上幾章講了鏡像的拉取和運行。
這次來嘗試如何將已經運行的容器打包,封裝成鏡像,並且上傳到阿里雲上,為了別的地方下載和使用更加的方便。
畢竟有Docker安裝不難,問題是一些特殊的配置麻煩,所以直接制作好,下次直接拉取了運行就會簡單的多了
首先,進入鏡像,如果不清楚地,可以看下上一章。
[root@VM_0_4_centos bin]# docker exec -it 8bf811453641 /bin/bash
然后更新鏡像:
root@8bf811453641:/# apt-get update
這里更新后需要退出:
exit
然后提交容器副本創建一個新的鏡像:
[root@VM_0_4_centos bin]# docker commit -m "nginx_my" -a "szy" 8bf811453641 niginx_my/nginx:v1
成功返回sha碼:
[root@VM_0_4_centos bin]# docker commit -m "nginx_my" -a "szy" 8bf811453641 niginx_my/nginx:v1 sha256:1836e4017c607fdd790068da627366e4e0c0cbe2c0dc53626f9a3fe0a2d03ab2
可以發現,鏡像已經打包成功了:
運行新容器:
[root@VM_0_4_centos bin]# docker run --name nginx_test2 -d -p 80:80 niginx_my/nginx:v1
可以運行新的容器,看運行結果。
到這里,表示鏡像已經制作完成了。下面來鏡像進行上傳。
這里是上傳到阿里雲的鏡像倉庫,然后綁定GIT的倉庫,拉取也是從這里拉取的。這里記錄一下;
同時也感謝,https://blog.csdn.net/jacksonary/article/details/78961612 ,從這里得到的方法。
進入到阿里雲的控制后台:
然后創建鏡像倉庫:
創建好后,去選擇代碼源:
這里還是比較簡單的,就是綁定你的GIT賬戶的一個倉庫。綁定后就行了。
創建成功后,進入倉庫的配置里面:
阿里雲就已經將拉取的指令和推送的指令都給出來了,只需要運行就行了。
這里還實驗下上傳鏡像到倉庫。
直接copy指令過來,上傳,很簡單的,上傳的過程會有點慢。
[root@VM_0_4_centos ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE niginx_my/nginx v1 1836e4017c60 16 hours ago 125MB hello-world latest 4ab4c602aa5e 10 days ago 1.84kB nginx latest 06144b287844 13 days ago 109MB [root@VM_0_4_centos ~]# docker login --username=sun29550 registry.cn-qingdao.aliyuncs.com 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 [root@VM_0_4_centos ~]# docker tag [1836e4017c60] registry.cn-qingdao.aliyuncs.com/mysokou/soko_2:v1 Error parsing reference: "[1836e4017c60]" is not a valid repository/tag: invalid reference format [root@VM_0_4_centos ~]# docker tag niginx_my/nginx:v1 registry.cn-qingdao.aliyuncs.com/mysokou/soko_2:v1 [root@VM_0_4_centos ~]# docker push registry.cn-qingdao.aliyuncs.com/mysokou/soko_2:v1 The push refers to repository [registry.cn-qingdao.aliyuncs.com/mysokou/soko_2] 9e2c0a77e8a4: Pushed 579c75bb43c0: Pushed 67d3ae5dfa34: Pushed 8b15606a9e3e: Pushed v1: digest: sha256:49768cfb207e5a133d62f3f5a7e59723e7a8c3a0d2c81e4155b34561f557adfc size: 1160
上傳成功后,到阿里的后台看,證明上傳成功了。
追加DockerHUB上傳方法
我的鏡像
加完tag就可以直接推送了,我是在推送之前登錄的
PS D:\Docker Toolbox> 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: sun2955 Password: Login Succeeded
登錄后直接推送
PS D:\Docker Toolbox> docker tag nginx_my:0.1 sun2955/my_docker:v1 PS D:\Docker Toolbox> docker push sun2955/my_docker:v1
結果:
The push refers to repository [docker.io/sun2955/my_docker] 88353f831c90: Pushed f978b9ed3f26: Pushed 9040af41bb66: Pushed 7c7d7f446182: Pushed d4cf327d8ef5: Pushed 13cb14c2acd3: Pushed v1: digest: sha256:a7d0b9705e68a3c161174fb791656af8e85b1ed97d2a3342530763d55cf05482 size: 1569 PS D:\Docker Toolbox> PS D:\Docker Toolbox> PS D:\Docker Toolbox>
可以去后台看看鏡像,上傳成功.