仓库相关操作命令
创建私有仓库
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文件修改,立刻生效。用数不多可以接受。