-v 主机到容器的映射(卷的挂载:主机和容器的共享)
创建容器一定要看成没成功
curl命令 访问浏览器命令
仓库装软件,配置-------------
localhost 本机 127.0.0.1
改配置,重启容器
背景介绍
Docker registry是存储Docker image的仓库,运行push、pull、 search 时,是通过Docker daemon与docker registry通信。
Docker Hub(Docker埠,内有大量存储库或叫仓库)是Docker提供的一项服务,用于查找和与您的团队共享容器镜像。它是世界上最大的容器镜像存储库,拥有一系列内容源,包括容器社区开发人员、开放源代码项目和独立软件供应商(ISV)在容器中构建和分发代码。
学习目的
了解仓库,掌握搭建私有仓库的方法
学习准备
要求实验主机能够连接外网,已经正确安装Docker,并关闭防火墙和selinux。本实验各主机配置信息如表所
主机名 | IP地址 | 节点角色 |
registry | 自己的主机 | 私有仓库 |
node1 | 其它主机1 | 客户端1 |
node2 | 其它主机2 | 客户端2 |
我的防火墙和selinux已经关闭了
搭建过程
步骤1:在registry主机上利用docker pull命令从Docker Hub拉取registry镜像,并通过docker images命令查看下载的regisry镜像。
[root@localhost ~]# hostnamectl set-hostname registry 重启生效
[root@registry ~]# docker pull registry 拉取镜像
[root@registry ~]# docker images 查看镜像列表
REPOSITORY TAG IMAGE ID CREATED SIZE
Registry latest f32a97de94e1 5 months ago 25.8MB
步骤2:通过docker run命令启动一个registry容器,并挂载目录,利用容器提供私有仓库的服务,并通过docker ps命令查看registry容器是否运行。
[root@registry ~]# docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry 启动容器
c93669d06c5545b1f90fcb721bdb4da43b7add9fff7ede08b9e58822d1c235d1
You have new mail in /var/spool/mail/root
[root@registry ~]# docker ps -a 看看这个容器是否运行
当容器正常启动后,对外提供服务通过5000端口映射到docker-registry的5000端口。
步骤4:拉取busybox镜像,修改tag名称后,上传到本地仓库中。
[root@registry ~]# docker pull busybox
[root@registry ~]# docker images
[root@registry ~]# docker tag busybox:latest 192.168.5.100:5000/busybox:latest
步骤5:将镜像192.168.5.100:5000/busybox上传到本地仓库中。
[root@registry ~]# docker push 192.168.5.100:5000/busybox
如果出现上述提示,表示本地仓库默认使用的是https协议进行上传。而当前采用是非https协议上传,可采用步骤6进行处理。 (http是安全的协议)
步骤6:修改/usr/lib/systemd/system/docker.service文件,在ExecStart参数后面添加--insecure-registry 192.168.5.100:5000。
[root@registry ~]# vi /usr/lib/systemd/system/docker.service
保存退出,重启docker服务---------修改配置文件之后需要重启
[root@registry ~]# systemctl daemon-reload
[root@registry ~]# systemctl restart docker
重启registry容器
[root@registry ~]# docker restart c93669d06c55
步骤7:再次上传镜像192.168.5.100:5000/busybox到本地仓库。
[root@registry ~]# docker push 192.168.5.100:5000/busybox
步骤8:在客户端1和客户端2上修改/usr/lib/systemd/system/目录下的docker.service文件,在ExecStart=/usr/bin/dockerd后面添加--insecure-registry 192.168.5.100:5000,保存后并重启docker服务
客户端1:
[root@localhost ~]# hostnamectl set-hostname node1
[root@node1 ~]# vi /usr/lib/systemd/system/docker.service
// 修改ExecStart参数,修改完后,内容如下
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.5.100:5000
保存退出,重启docker服务
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart docker
客户端2:
[root@localhost ~]# hostnamectl set-hostname node2
[root@node2 ~]# vi /usr/lib/systemd/system/docker.service
// 修改ExecStart参数,修改完后,内容如下
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.5.100:5000
保存退出,重启docker服务
[root@node2 ~]# systemctl daemon-reload
[root@node2 ~]# systemctl restart docker
步骤9:在客户端node1和node2上拉取私有仓库中的busybox镜像。
[root@node1 ~]# docker pull 192.168.5.100:5000/busybox
[root@node1 ~]# docker images