Using self-signed certificates(自我簽署憑證建立private registry)_Docker

來源:互聯網
上載者:User

1、環境

1)Ubuntu14.04

2)docker 1.12.0

2、在Ubuntu14.04虛擬機器上安裝docker 1.12.0,本次實驗建立兩個虛擬機器,ip分別是192.168.110.137和192.168.110.138,其中192.168.110.138的hostname是ip-192-168-110-138.ec2.internal,並且在192.168.110.138的hosts檔案中添加如下記錄

192.168.110.138 ip-192-168-110-138 ip-192-168-110-138.ec2.internal

3、環境配置

1)192.168.110.138的配置

在/etc/default/docker內添加如下內容:

DOCKER_OPTS="--label com.example.db=mysql  -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"

2)192.168.110.138的配置。建立/etc/docker/certs.d/ip-192-168-110-138.ec2.internal:5000/

3)192.168.110.138的配置(自我簽署憑證,在/home目錄下執行如下操作)

>  mkdir -p certs &&  -newkey rsa:4096 -nodes -sha256 -keyout /certs/domain.key \>   -x509 -days 365 -out /certs/domain.crtGenerating a 4096 bit RSA private key..........++................................................................................................++writing new private key to '/certs/domain.key'-----You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:CNState or Province Name (full name) []:BJLocality Name (eg, city) [Default City]:BJOrganization Name (eg, company) [Default Company Ltd]:starOrganizational Unit Name (eg, section) []:cloudCommon Name (eg, your name or your server's hostname) []:ip-192-168-110-138.ec2.internalEmail Address []:a@a.com

4)192.168.110.138的配置

將/home/certs目錄下的domain.crt檔案拷貝到/etc/docker/certs.d/ip-192-168-110-138.ec2.internal:5000/目錄下,並將其名字改為ca.crt

5)192.168.110.137的配置

在/etc/default/docker內添加如下內容:

DOCKER_OPTS="--label com.example.db=mysql -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"

5) 192.168.110.137的配置

將/home/certs目錄下的domain.crt檔案拷貝到/etc/docker/certs.d/ip-192-168-110-138.ec2.internal:5000/目錄下,並將其名字改為ca.crt

6)192.168.110.137的配置,在hosts檔案中添加如下內容

192.168.110.138 ip-192-168-110-138 ip-192-168-110-138.ec2.internal

2、實驗

1)在192.168.110.138虛擬機器上執行 docker pull registry:2.4.1  

2)在192.168.110.138虛擬機器上執行如下操作(建立容器)

docker run -d -p 5000:5000 --name myregistry --restart=always  -v /opt/registry/auth/:/auth/ -v /opt/registry/certs/:/certs/ -e "REGISTRY_AUTH=htpasswd"  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd  -v /opt/registry/:/var/lib/registry/ registry:2.4.1  

注意:宿主機的/opt/auth/htpasswd檔案按照如下方法產生:

docker run --entrypoint htpasswd registry:2.4.1 -Bbn test test  >> /opt/registry/auth/htpasswd  

登入本地registry的使用者名稱和密碼分別是test和test

3)容器建立成功後,再進行push和pull操作的時候,需docker login操作,輸入使用者名稱和密碼。同樣

在137機器上進行push和pull操作之前,需要先進行docker login操作,然後輸入使用者名稱和密碼後進行push和pull操

作。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.