docker--发布docker镜像

前戏

前面我们自己做了个docker镜像,我们可以上传到docker hub,别人就可以下载使用了

发布到docker hub

我们前面使用docker search 查找的镜像都是从docker hub进行查找的,这里管理着最全的docker镜像,我们也可以上传我们的镜像

docker hub官网:https://hub.docker.com/

1.先登录docker hub

[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是账户名)

注意要保证image的tag是账户名,如果镜像名字不对,需要改一下tag

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/查看自己推送的公网镜像

 

# 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/

查看镜像

登录到私有仓库

# 登录到私有仓库
docker login https://release-ci.xxx.io/

退出私有仓库

# 退出私有仓库,要加仓库地址,要不然退出的是 dockerhub
docker logout https://release-ci.xxx.io/

登录成功之后就可以 push 了

docker push release-ci.xxx.io/common-ci/dependabot-gitlab:0.16.0
# 之前登录过别的账号,如果没有权限,就要先退出
[root@dce-10-6-215-10 ~]# docker logout https://release-ci.xxx.io/
Removing login credentials for release-ci.daocloud.io

# 登录私有仓库
[root@dce-10-6-215-10 ~]# docker login https://release-ci.xxx.io/
Username: 
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@dce-10-6-215-10 ~]# docker push release-ci.xxx.io/common-ci/dependabot-gitlab:0.16.0
The push refers to repository [release-ci.daocloud.io/common-ci/dependabot-gitlab]
2f9867aad46b: Preparing
6d7e6a41e83d: Preparing
89f043bc3918: Preparing
bdf858b0aaa2: Preparing

 

posted @ 2019-11-06 19:55  邹邹很busy。  阅读(890)  评论(0编辑  收藏  举报