[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