659441806 发表于 2018-5-30 08:58:42

Docker私有仓库与docker

  Docker是时下相当火热的技术,关于docker的介绍此处就不多说,本文主要介绍下如何在Ubuntu 14.04环境下配置docker的本地仓库,对于想在局域网内大规模运用docker来说,频繁的从官网仓库下载镜像文件,无论从管理还是在效率上都无法接受。---转自斩月
  

  一.安装docker
apt-get install apt-transport-https
apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sh -c "deb https://apt.dockerproject.org/repo ubuntu-trusty main\ > /etc/apt/sources.list.d/docker.list"
apt-get update
apt-get install docker-engine  二.以容器的方式运行registry服务
mkdir /data/registry
docker run -d --name registry -p xxx.xxx.xxx.xxx:5000:5000 -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /data/registry:/tmp/registry registry  
--restart=always  三.用nginx来做docker registry仓库的安全控制
  这里采用marvambass/nginx-registry-proxy来做 非常的方便。
  (1)配置ssl证书和密码文件
mkdir /etc/nginx/docker            ----用来存放文件
cd /etc/nginx/docker
openssl req -x509 -newkey rsa:4086 -keyout key.pem -out cert.pem -days 3650 -nodes    ----Common Name设置成FQDN的格式
htpasswd -c docker-registry.htpasswd user1      ----创建密码文件
/etc/nginx/docker$ ls
cert.pemdocker-registry.htpasswdkey.pem
docker run -d -p 443:443 -v /etc/nginx/docker:/etc/nginx/external--link registry:registry --name nginx-registry-proxy marvambass/nginx-registry-proxy
cat cert.pem | sudo tee -a /etc/ssl/certs/ca-certificates.crt  之后重启docker 即可;

  备注其他客户端操作如下:
cat cert.pem | sudo tee -a /etc/ssl/certs/ca-certificates.crt  之后重启docker即可。

  (2)验证登录
  编辑/etc/hosts绑定FQDN到内网网卡

docker login -u user1 -p passwd -e mail@xxx https://registry.xx.com
Login Succeeded  

  四.搭建docker web ui 管理仓库
docker run -d --name docker-webui -p 内网ip:8001:8080 atcol/docker-registry-ui  (1)用Nginx auth basic认证保护
htpasswd -c docker.user user1  创建虚拟主机:
server {
      listen       8010;
      server_namedefaults;
      root         html;
      location / {
      auth_basic "docker";
      auth_basic_user_file /etc/nginx/conf.d/docker.user;
      proxy_pass http://内网ip:8001/;
      }
    }  然后访问添加填入具体docker registry仓库即可

  

  五.更新镜像
1.对容器进行修改后,进行提交
docker commit <CONTAINER ID> <IMAGES NAME>
2.登录私有仓库
dockerlogin -u xx -p xx -e admin@xxx.com https://registry.xx.com
3.提交更新
docker push registry.xxx.com/jenkins  
页: [1]
查看完整版本: Docker私有仓库与docker