仓库相关操作命令

创建私有仓库

https://docs.docker.com/engine/security/https/

  • 创建证书

start yourself registry server:
  docker run -d -p 5000:5000 --restart=always --name registry \
    -v /home/hjb/registry:/var/lib/registry \
    -v /home/hjb/registry_test/certs:/certs \
    -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
    -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
     registry:2.1.1

start yourself registry server only http:

  docker run -d -p 5000:5000 --restart=always --name registry \
    -v /home/hjb/registry:/var/lib/registry \
     registry:2.1.1

In the file /etc/init.d/docker add ‘–insecure-registry domain:port’ to DOCKER_OPTS env or EXTRA_ARGS .

Docker Hub

登录

可以通过执行 docker login 命令来输入用户名、密码和邮箱来完成注册和登录。 注册成功后,本地用户 目录的 .dockercfg 中将保存用户的认证信息。

查找镜像

用户无需登录即可通过 docker search 命令来查找官方仓库中的镜像,并利用 docker pull 命令来将 它下载到本地。

在私有仓库上传、下载、搜索镜像

使用 docker tag 将 ba58 这个镜像标记为 192.168.7.26:5000/test (格式为 docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG] )。

给镜像打tag: $sudo docker tag ba58 192.168.7.26:5000/test

Push镜像: $ sudo docker push 192.168.7.26:5000/test

Docker Registry V2(distribution) & Proxy(nginx)的搭建过程

安装htpasswd

aptitude install apache2 apache2-utils

mkdir /data

docker run -d -p 5000:5000 --restart=always --name registry -v /data/:/var/lib/registry -v /etc/registry/config.yml:/etc/docker/registry/config.yml registry:2.3.1

nginx升级:默认nginx在/usr/sbin/nginx 下,默认配置在/etc/nginx/sbin下,自定义编译安装在--prefix=/opt/nginx下,如果没有指定,则安装在/usr/local/nginx下

cd ~ wget http://nginx.org/download/nginx-1.9.4.tar.gz tar zxvf nginx-1.9.4.tar.gz cd ./nginx-1.9.4 && \ ./configure --user=www --group=www --prefix=/opt/nginx \ --with-pcre \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_addition_module \ --with-http_realip_module \ --with-http_flv_module && \ make && \ make install

./configure --user=www --group=www --prefix=/etc/nginx --with-pcre --with-http_stub_status_module --with-http_ssl_module --with-http_addition_module --with-http_realip_module --with-http_flv_module haproxy

在配置nginx 时提示如下错误时: nginx: [emerg] getpwnam(“www”) failed

解决方案一

在nginx.conf中 把user nobody的注释去掉既可

解决方案二

错误的原因是没有创建www这个用户,应该在服务器系统中添加www用户组和用户www,如下命令:

1 2 /usr/sbin/groupadd -f www /usr/sbin/useradd -g www www 以上方法测试通过,启动后,在浏览器里输入IP,即可查看到: Welcome to nginx!的欢迎界面

nginx -V 看哪些支持模块被编译

注意

debian wheezy: nginx 为1.2.1 debian jessie: nginx 为1.6.2.

registry:2.3.1需要加头 add_header 'Docker-Distribution-Api-Version' 'registry/2.0' always; 所以必须升级nginx 到 1.9.2. 但会生成nginx配置目录有以下三个,/usr/local/nginx, /etc/nginx, /opt/nginx, 具体哪个目录起作用,要查看 nginx -t测试配置 nginx -c指定配置 nginx -s reload

im.hzspeed.cn 借用了icp.hzspeed.cn 证书,这证书里包含五个域名(其中包含了im.hzspeed.cn)

安装nginx-auth-ldap

apt-get install libldap-dev

./configure --user=www --group=www --prefix=/etc/nginx --with-pcre --with-http_stub_status_module --with-http_ssl_module --with-http_addition_module --with-http_realip_module --with-http_flv_module --add-module=../nginx-auth-ldap/

root@hjb:/home/hjb# nginx -t nginx: the configuration file /etc/nginx/conf/nginx.conf syntax is ok nginx: configuration file /etc/nginx/conf/nginx.conf test is successful

但是生效的.htpasswd文件是在/opt/nginx/conf/.htpasswd文件里,非/etc/nginx/conf/.htpasswd 要添加、删除用户直接在.htpasswd文件修改,立刻生效。用数不多可以接受。