Docker:私有仓库的搭建
继续,本文描述私有仓库的搭建最简步骤。
概要来说:
- 安装registry镜像,启动容器。
- CA证书(还有一种办法是直接用HTTP也行,可以省略此步)
- 制作镜像,发布。
安装Registry的最简方法是直接Pull一个现成的Registry镜像即可。
<code>docker pull registry</code>
然后启动它。
<code>docker run <span>-p</span><span>5000</span>:<span>5000</span><span>-v</span> /home/registry:/tmp/registry registry</code>
暴露5000端口对外服务,同时,装载宿主机的/home/registry目录作为仓库目录。
现在可以push自己的镜像到这个仓库了,需要先给一个镜像打个标签,然后PUSH即可,命令如下:
<code>docker tag java:<span>7</span>-jre hub<span>.wo</span><span>.cn</span>/yancheng/java docker <span>push</span> hub<span>.wo</span><span>.cn</span>/yancheng/java</code>
此时,必然会报一个安全错误:
从错误描述来看,有两种解决办法,一是使用HTTP,二是安装CA证书。
方法一,配置成HTTP,速度会稍快,也简单。只需要修改一下 /etc/default/docker 文件,加上一句话:
<code>DOCKER_OPTS=<span>"<span>$DOCKER_OPTS</span> --insecure-registry=hub.open.wo.cn"</span></code>
然后重启Docker,sudo service docker restart
,即可正常push了。
方法二,配置安全证书,略显麻烦,尤其是我们的docker registry在nginx后面。
首先,需要生成自己的证书(到服务器上操作),命令如下:
<code>openssl genrsa -des3 -<span>out</span> hub<span>.key</span><span>2048</span> openssl rsa -<span>in</span> hub<span>.key</span> -<span>out</span> hub_nopwd<span>.key</span> openssl req -new -key hub_nopwd<span>.key</span> -<span>out</span> hub<span>.csr</span> openssl x509 -req -days <span>3650</span> -<span>in</span> hub<span>.csr</span> -signkey hub_nopwd<span>.key</span> -<span>out</span> hub<span>.crt</span></code>
然后,我们配置一下Nginx,增加对HTTPS的支持。
<code>server { listen <span>443</span>; server_name hub<span>.</span>wo<span>.</span><span>cn</span>; ssl <span>on</span>; ssl_certificate /usr/<span>local</span>/nginx/conf/hub<span>.</span>crt; ssl_certificate_key /usr/<span>local</span>/nginx/conf/hub_nopwd<span>.</span>key; location <span>/</span> { proxy_pass http:<span>//10.250.251.20:5000;</span> proxy_redirect off; proxy_set_header Host <span>$host</span>; proxy_set_header x<span>-forwarded</span><span>-for</span><span>$remote_addr</span>; } }</code>
注意hub.crt和hub_nopwd.key的位置。重启nginx。
现在,需要将这个hub.crt弄到本地,按前面截图的提示放到相应目录下。即:/etc/docker/certs.d/hub.open.wo.cn
。
再次重启docker,再push就正常了。
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });以上就介绍了Docker:私有仓库的搭建,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

退出 Docker 容器的四种方法:容器终端中使用 Ctrl D 快捷键容器终端中输入 exit 命令宿主机终端中使用 docker stop <container_name> 命令宿主机终端中使用 docker kill <container_name> 命令(强制退出)

重启 Docker 容器的方法:获取容器 ID(docker ps);停止容器(docker stop <container_id>);启动容器(docker start <container_id>);验证重启成功(docker ps)。其他方法:Docker Compose(docker-compose restart)或 Docker API(参考 Docker 文档)。

在 Docker 中启动 MySQL 的过程包含以下步骤:拉取 MySQL 镜像创建并启动容器,设置根用户密码并映射端口验证连接创建数据库和用户授予对数据库的所有权限

Docker 中将文件拷贝到外部主机的方法:使用 docker cp 命令:执行 docker cp [选项] <容器路径> <主机路径>。使用数据卷:在主机上创建目录,在创建容器时使用 -v 参数挂载该目录到容器内,实现文件双向同步。

可以通过以下步骤查询 Docker 容器名称:列出所有容器(docker ps)。筛选容器列表(使用 grep 命令)。获取容器名称(位于 "NAMES" 列中)。

Docker 进程查看方法:1. Docker CLI 命令:docker ps;2. Systemd CLI 命令:systemctl status docker;3. Docker Compose CLI 命令:docker-compose ps;4. Process Explorer(Windows);5. /proc 目录(Linux)。

可切换到国内镜像源,步骤如下:1. 编辑配置文件 /etc/docker/daemon.json,添加镜像源地址;2. 保存退出后,重启 Docker 服务 sudo systemctl restart docker,即可提升镜像下载速度和稳定性。
