自定义镜像仓库

[root@coker1 ~]# cd /etc/docker/
[root@coker1 docker]# ls
key.json

[root@coker1 docker]# docker run -d  -p 5000:5000 registry
18c5d370e3911564e412fef51999372f306184f20d1bb55276cc02fb67f67006

[root@coker1 docker]# docker images

[root@coker1 docker]# docker tag  busybox:latest  192.168.1.50:5000/busybox:latest

[root@coker1 docker]# docker images 
192.168.1.50:5000/busybox   latest              e1ddd7948a1c        3 weeks ago         1.163 MB

[root@coker1 docker]# docker push  192.168.1.50:5000/busybox
The push refers to a repository [192.168.1.50:5000/busybox]
Get https://192.168.1.50:5000/v1/_ping: http: server gave HTTP response to HTTPS client

是没有写配置文件的原因:

写配置文件:

[root@coker1 docker]# vim  daemon.json

{
   "insecure-registries" : ["192.168.1.50:5000"]
}
:wq

停掉所有的容器:
[root@coker1 docker]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
18c5d370e391        registry            "/entrypoint.sh /etc/"   9 minutes ago       Up 9 minutes        0.0.0.0:5000->5000/tcp   naughty_sinoussi
9ca33ba7ad74        myos:httpd          "/usr/sbin/httpd -DFO"   About an hour ago   Up About an hour    80/tcp                   evil_almeida
[root@coker1 docker]# docker stop 18
18
[root@coker1 docker]# docker stop 9c
9c
[root@coker1 docker]# docker ps

重起docker服务:
[root@coker1 docker]# systemctl  restart  docker.service 

上传镜像文件:
[root@coker1 docker]# docker push  192.168.1.50:5000/busybox
The push refers to a repository [192.168.1.50:5000/busybox]
f9d9e4e6e2f0: Pushed 
latest: digest: sha256:3058e3a1129c64da64d5c7889e6eedb0666262d7ee69b289f2d4379f69362383 size: 527

批量打包和上传镜像文件:
[root@coker1 docker]# for  i in latest sshd httpd
> do
> docker tag myos:${i}  192.168.1.50:5000/myos:${i}
> docker push 192.168.1.50:5000/myos:${i}
> done


在另外一个终端检测:
利用仓库里的镜像文件启动容器:
[root@coker2 ~]# docker run -it 192.168.1.50:5000/myos:latest
Unable to find image '192.168.1.50:5000/myos:latest' locally
docker: Error response from daemon: Get https://192.168.1.50:5000/v1/_ping: http: server gave HTTP response to HTTPS client.
See 'docker run --help'.
//因为没有配置文件,所以会出现报错


把另外一个docker服务器,的配置文件传给客户端:
[root@coker2 ~]# scp 192.168.1.50:/etc/docker/daemon.json  /etc/docker/


重起docker服务,再次运行容器:(第一次启动就比较久,需要下载)
[root@coker2 ~]# systemctl  restart  docker.service 
[root@coker2 ~]# docker run -it 192.168.1.50:5000/myos:latest


查看镜像的标签:
[root@room9pc01 ~]# curl http://192.168.1.50:5000/v2/myos/tags/list
{"name":"myos","tags":["latest","sshd","httpd"]}

docker是一个进程,是没有办法保存数据的,需要外部的一个卷进行存储:
重要的数据是可以持久化的
外部的存储卷是可以挂载真实机的目录,或者共享存储卷

容器于真实机的数据共享操作:
终端1
[root@coker2 ~]# mkdir   /var/data
[root@coker2 ~]# cd  /var/data/
[root@coker2 data]# ls


打开另外一个终端:(命名为终端2)
[root@coker2 ~]# docker run -it -v /var/data:/abc  192.168.1.50:5000/myos
[root@c88fac129a2d /]# ls
abc                bin  etc   lib    media  opt   root  sbin  sys  usr
anaconda-post.log  dev  home  lib64  mnt    proc  run   srv   tmp  var
[root@c88fac129a2d /]# cd abc
[root@c88fac129a2d abc]# touch f1
[root@c88fac129a2d abc]# ls

打开终端1查看:
[root@coker2 data]# ls
f1



覆盖实验操作:
终端2
[root@c88fac129a2d ~]# cd /
[root@c88fac129a2d /]# ls
[root@c88fac129a2d /]# cd root
[root@c88fac129a2d ~]# ls
anaconda-ks.cfg

[root@c88fac129a2d ~]# exit
exit
[root@coker2 ~]# docker run -it -v /var/data:/root  192.168.1.50:5000/myos
bash-4.2# 
bash-4.2# 
bash-4.2# 
bash-4.2# ls
anaconda-post.log  dev home  lib64  mnt  proc run   srv  tmp var
bin   etc lib   media  opt  root sbin  sys  usr
bash-4.2# ls root     //直接把root的文件给覆盖了
f2


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维螺丝钉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值