发布网友 发布时间:2022-04-24 04:42
共1个回答
热心网友 时间:2022-04-10 02:08
本文指导何搭建私docker registry并确保其安全性本教程亲身体验传自制docker镜像私registry并同机器安全该其拉
本教程包含何容器化应用服务内容旨引导创建registry存储要部署服务资源想要docker入门教程许帮
基于Ubuntu14.04系统单registry单客户机模式本教程已经通测试许其基于debian发布仍运行
docker概念
前尚未接触docker需要花费几钟间熟悉docker关键概念docker已应手想解何构建私registry直接进入节
于新手该何使用docker妨试试优秀docker笔记
docker核要应用及应用依赖与操作系统离达述目docker采用容器与镜像机制docker镜像基本文件系统模板通docker run命令运行docker镜像该文件系统实例即激并且运行系统内docker容器默认该容器触及原始镜像及docker本身所运行主机文件系*立环境
容器所做任何改都保存容器本身内并影响原始镜像想保留些改通docker commit命令容器保存镜像意味通原容器衍新容器原始容器(或镜像)造任何影响熟悉git觉该流程十眼熟:任意容器创建新支(支意思即docker镜像)运行镜像类似于执行git checkout操作
更进步形容运行私docker registry比docker镜像运行私git仓库
第步——安装必要软件
docker registry服务器应创建拥sudo权限用户(客户机)
docker registry软件款python应用使其能够运行起需要安装python发环境及必要库:
sudo apt-get updatesudo apt-get -y install build-essential python-dev libevent-dev python-pip liblzma-dev
第二步——安装并配置docker registry
安装新稳定docker registry发行版(作者撰文0.7.3译者译0.9.1)我使用python包管理工具pip:
sudo pip install docker-registry
docker-registry需要配置文件
默认pip该配置文件放置相偏僻系统python安装位置异找该路径我尝试运行registry查看相关输:
gunicorn --access-logfile - --debug -k gevent -b 0.0.0.0:5000 -w 1 docker_registry.wsgi:application
由于配置文件确位置述尝试失败告终并输条包含FileNotFoundError错误消息所示[某些版本述信息输译者注]:
FileNotFoundError: Heads-up! File is missing: /usr/local/lib/python2.7/dist-packages/docker_registry/lib/../../config/config.yml
registry同路径包含示例配置文件该文件名config_sample.yml我通述给路径名定位示例配置文件
错误消息复制路径信息(/usr/local/lib/python2.7/dist-packages/docker_registry/lib/../../config/config.yml)config.yml部除我切换该路径
cd /usr/local/lib/python2.7/dist-packages/docker_registry/lib/../../config/
config_sample.yml文件内容复制config.yml:
sudo cp config_sample.yml config.yml
默认情况docker数据文件存放/tmp文件夹许类Linux系统系统重启该文件夹清空并我所希望我创建永久性文件夹存储数据:
sudo mkdir /var/docker-registry
面我配置config.yml文件文件夹/tmp引用更改/var/docker-registry首先首先找sqlalchemy_index_database首靠近文件首部行:
sqlalchemy_index_database:_env:SQLALCHEMY_INDEX_DATABASE:sqlite:////tmp/docker-registry.db
其更改指向/var/docker-registry所示:
sqlalchemy_index_database:_env:SQLALCHEMY_INDEX_DATABASE:sqlite:////var/docker-registry/docker-registry.db
向点local:部重复述操作更改内容:
local: &localstorage: localstorage_path: _env:STORAGE_PATH:/tmp/registry
:
local: &localstorage: localstorage_path: _env:STORAGE_PATH:/var/docker-registry/registry
例配置文件其默认值均需修改目十行即想要做些复杂配置诸采用扩展存储装置存储docker数据该文件具功能已超本教程范围查看docker-registry文档获取更帮助
既配置文件已置于确位置再尝试测试docker registry服务器:
gunicorn --access-logfile - --debug -k gevent -b 0.0.0.0:5000 -w 1 docker_registry.wsgi:application
看输:
2014-07-27 07:12:24 [29344] [INFO] Starting gunicorn 18.02014-07-27 07:12:24 [29344] [INFO] Listening at: (29344)2014-07-27 07:12:24 [29344] [INFO] Using worker: gevent2014-07-27 07:12:24 [29349] [INFO] Booting worker with pid: 293492014-07-27 07:12:24,807 DEBUG: Will return docker-registry.drivers.file.Storage
棒极现我已经拥运行着docker registry面执行Ctrl+C终止该程序
目前止docker registry并用并自行启除非我执行述gunicorn命令另外docker registry没引入任何内置认证机制其前状态安全并且外部完全放
第三步——服务形式启docker registry
通创建Upstart脚本设置docker registry系统启程序始运行
首先创建志文件目录:
sudo mkdir -p /var/log/docker-registry
用款拿手文本编辑器创建Upstart脚本:
sudo nano /etc/init/docker-registry.conf
内容写入述脚本:
description "Docker Registry"start on runlevel [2345]stop on runlevel [016]respawnrespawn limit 10 5script exec gunicorn --access-logfile /var/log/docker-registry/access.log --error-logfile /var/log/docker-registry/server.log -k gevent --max-requests 100 --graceful-timeout 3600 -t 3600 -b localhost:5000 -w 8 docker_registry.wsgi:applicationend script
更关于Upstart脚本内容请阅读该教程
执行命令:
sudo service docker-registry start
看面输:
docker-registry start/running, process 25303
通运行面命令查看server.log志文件验证docker-registry服务否运行:
tail /var/log/docker-registry/server.log
切看像前执行gunicorn命令输文本信息
既docker-registry服务器已台运行面我配置Nginx使registry更加安全