前面咱們本身作了個docker鏡像,咱們能夠上傳到docker hub,別人就能夠下載使用了linux
咱們前面使用docker search 查找的鏡像都是從docker hub進行查找的,這裏管理着最全的docker鏡像,咱們也能夠上傳咱們的鏡像docker
docker hub官網:https://hub.docker.com/json
1.先登陸docker hubflask
[root@HH tmp]# 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: zouzou0214 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
2.更改鏡像名稱(tag是帳戶名)vim
注意要保證image的tag是帳戶名,若是鏡像名字不對,須要改一下tagapi
docker tag zz/my-docker-flask zouzou0214/my-docker-flask安全
語法是: docker tag 倉庫名 帳戶名/倉庫名服務器
docker tag zouzu0214/my-docker-flask:latest zouzou0214/my-docker-flask
3.推送到本身的docker hub上測試
[root@HH tmp]# docker push zouzou0214/my-docker-flask The push refers to repository [docker.io/zouzou0214/my-docker-flask] ed6d87727896: Pushed d715287dbe47: Pushed 75cf052a90dc: Pushed a7ced2beb634: Pushed 3d55a1be5031: Pushed b1febd32aebe: Pushed 877b494a9f30: Pushed latest: digest: sha256:70e7f41a767c333bb36dedadedee9655f64de8580a693f0a511925d8ce9eead6 size: 1784
4.登陸https://hub.docker.com/查看本身推送的公網鏡像this
# 1.註冊docker id後,在linux中登陸dockerhub docker login 注意要保證image的tag是帳戶名,若是鏡像名字不對,須要改一下tag docker tag docker-flask zouzou0214/my-docker-flask 語法是: docker tag 倉庫名 用戶名/倉庫名 # 2.推送docker image到dockerhub docker push yuchao163/centps-cmd-exec:latest
# 3.在dockerhub中檢查鏡像 https://hub.docker.com/
# 4.刪除本地鏡像,測試下載pull 鏡像文件 docker pull zouzou0214/my-docker-flask
發佈到docker hub上其餘人也是能夠下載,並不安全,所以還可使用docker registry官方提供的私有倉庫。
構建公司私有docker倉庫,其實就是搭建一個api服務器,經過api能夠下載鏡像
# 1.下載docker官方提供的私有倉庫鏡像 docker pull registry
# 2.查看鏡像 docker images
# 3.啓動一個私有倉庫容器 docker run -d \ -p 5000:5000 \ -v /opt/data/registry:/var/lib/registry \ registry
# 4.此時能夠檢查容器進程 docker ps
# 5.此時私有倉庫就打開了5000端口,經過端口映射,訪問宿主機的5000端口,查看是否通訊 yum install telnet -y telnet 127.0.0.1 5000 #檢測5000端口是否通訊 # 6.修改本地鏡像的tag標籤,標註我要往哪push鏡像 docker tag docker.io/hello-world 192.168.12.96:5000/s14-hello # 7.修改docker配置,容許非安全的傳輸方式 1.vim /etc/docker/daemon.json,寫入信息,私有倉庫地址,都得改爲本身的 {"registry-mirrors": ["http://95822026.m.daocloud.io"], "insecure-registries":["192.168.12.96:5000"] } 2.修改docker.server vim /lib/systemd/system/docker.service #寫入以下信息,請在[service]中寫入 [Service] EnvironmentFile=/etc/docker/daemon.json # 8.重啓docker服務,使得生效 systemctl daemon-reload #從新加載docker配置文件 systemctl restart docker #重啓docker服務 # 9. #重啓docker服務,會中止容器,所以要再次啓動 docker ps -a docker start b23bcfe42e80 #啓動這個私有倉庫容器 # 10.推送本地鏡像到 私有倉庫 192.168.12.96:5000 docker push 192.168.12.96:5000/s14-hello # 11.此時訪問api接口,查看私有倉庫的數據 http://192.168.12.96:5000/v2/_catalog
-v 參數 掛載宿主機的文件:容器內的文件夾
docker run -p 8000:8080 -v /opt/zou:/opt/data/ -d 43d 啓動容器,經過-v參數掛載 掛載容器內的/opt/data/文件夾,其實訪問的是宿主機的/opt/zou/