centos7 Docker 局域网私有仓库v2 nginx https 配置

本次采用 VirtualBox 虚拟局域网环境,两台虚拟机均配置两块网卡,网卡1桥接模式,网卡2host-only模式

192.168.56.* 为host-only模式网卡IP
私有仓库主机IP 192.168.56.222
客户机IP      192.168.56.101

ssl证书从腾讯云免费申请

从腾讯云申请证书之后下载,得到文件
docker.khs1994.com.zip

#scp docker.khs1994.com.zip root@192.168.56.222:/root

上边这一命令是从本机将证书上传到私有仓库主机 root家目录下

#yum install zip unzip -y
#unzip docker.khs1994.com.zip

解压之后得到文件
1_docker.khs1994.com_cert.crt
2_docker.khs1994.com.key

#mkdir certs
#mv 1* 2* certs

docker run -d -p 5000:5000 --restart=always --name registry \
-v /root/docker:/var/lib/registry \
-v /root/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/1_docker.khs1994.com_cert.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/2_docker.khs1994.com.key \
registry

配置nginx

安装nginx 见我的另一篇文章

创建一个登陆用户

(如果没有htpasswd命令 请安装httpd-tools这个包)

#yum install httpd-tools
#htpasswd -c /etc/nginx/docker-registry.htpasswd admin

New password:
Re-type new password:
Adding password for user admin
(此处是设置用户名和密码,我用户密码均设为admin,密码输入两次)

配置nginx主配置文件

# cd /etc/nginx/
# vi nginx.conf

...

http {
include       mime.types;
default_type  application/octet-stream;
include conf.d/*.conf                    #引入子域名配置文件*
#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';

#access_log  logs/access.log  main;

sendfile        on;
#tcp_nopush     on;

...

配置子域名

# mkdir conf.d ; cd conf.d ;vi docker.conf

upstream docker-registry {

  server 127.0.0.1:5000;

  }

server {

  listen    443;

  server_name  docker.khs1994.com;

  #enabled ssl

  ssl on;

  ssl_certificate /root/certs/1_docker.khs1994.com_cert.crt;

  ssl_certificate_key /root/certs/2_docker.khs1994.com.key;

  proxy_set_header Host $http_host;

  proxy_set_header X-Real-IP $remote_addr;

  client_max_body_size 0;

  chunked_transfer_encoding on;

  location / {

    #root  html;

    #index  index.html index.htm index.php;

    auth_basic "Restricted";

    auth_basic_user_file docker-registry.htpasswd;

    proxy_pass https://docker-registry;
  location /v2/ {

      auth_basic "Restricted";

      auth_basic_user_file docker-registry.htpasswd;

      proxy_pass https://docker-registry;

    }

客户机操作

修改host文件

将仓库主机IP192.168.56.222 指向docker.khs1994.com

# vi /etc/hosts
192.168.56.222 docker.khs1994.com   #最后一行增加内容

测试私有仓库功能

# docker login https://docker.khs1994.com #接下来输入用户名密码均为admin
# docker pull centos
# docker tag centos docker.khs1994.com/centos:16.10.08
# docker push docker.khs1994.com/centos:16.10.08

参考链接

http://www.jb51.net/os/other/369064.html

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/62434

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。