最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

centos7搭建docker私人倉(cāng)庫(kù)的方法(kubernetes)

 更新時(shí)間:2018年03月27日 10:41:07   作者:VincentFF  
這篇文章主要介紹了centos7搭建docker私人倉(cāng)庫(kù)的方法(kubernetes),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

我們平時(shí)鏡像都是習(xí)慣于放在公共倉(cāng)庫(kù)的,比如Dockerhub, Daocloud。但在企業(yè)里,我們經(jīng)常會(huì)需要搭建公司自己的鏡像倉(cāng)庫(kù)。

這篇文章講解如何用docker提供的registry鏡像來(lái)搭建自己的鏡像倉(cāng)庫(kù)。

不添加ssl認(rèn)證的倉(cāng)庫(kù)

下面用registry:2.6.2鏡像創(chuàng)建docker倉(cāng)庫(kù)。

將宿主機(jī)的5000端口映射到容器的5000端口。

將宿主機(jī)/mnt/registry掛在到容器的/var/lib/registry目錄,容器里的這個(gè)目錄就是存放鏡像的地方。這樣可以將數(shù)據(jù)持久化,當(dāng)容器掛掉時(shí)鏡像不會(huì)丟失。

mkdir /mnt/registry

docker run -d \
 -p 5000:5000 \
 --restart=always \
 --name registry \
 -v /mnt/registry:/var/lib/registry \
 registry:2.6.2

docker倉(cāng)庫(kù)是需要ssl認(rèn)證的,由于現(xiàn)在沒(méi)有添加ssl認(rèn)證,需要在docker客戶端添加參數(shù):

vim /etc/sysconfig/docker

# 在OPTIONS下添加--insecure-registry=<host-ip>:5000
OPTIONS='--selinux-enabled --log-driver=json-file --signature-verification=false --insecure-registry=10.34.31.13:5000'

# 重啟docker
systemctl restart docker

我們可以測(cè)試一下新建的倉(cāng)庫(kù)是否可用。

docker push 10.34.31.13:5000/hello-world:v1

但這樣形式的倉(cāng)庫(kù)可用性不高,比如我們有多個(gè)鏡像倉(cāng)庫(kù)要使用,我們需要經(jīng)常去修改--insecure-registry參數(shù)。

下面會(huì)講解如何創(chuàng)建一個(gè)https協(xié)議的高可用倉(cāng)庫(kù)。

創(chuàng)建一個(gè)帶ssl認(rèn)證的高可用倉(cāng)庫(kù)

1、安裝openssl

yum install -y openssl

2、修改openssl.cnf文件

vim /etc/pki/tls/openssl.cnf

# 找到v3_ca,在下面添加宿主機(jī)的IP地址
[ v3_ca ]
subjectAltName = IP:10.34.31.13

如果沒(méi)有修改這個(gè)文件,最后生成的ssl證書(shū)使用時(shí)會(huì)報(bào)錯(cuò)如下:

x509: cannot validate certificate 10.34.31.13 because it doesn't contain any IP SANs

3、生成ssl證書(shū)

mkdir /certs
openssl req -newkey rsa:4096 -nodes -sha256 \
      -keyout /certs/domain.key -x509 -days 1000 \
      -out /certs/domain.cert

# 生成證書(shū)的過(guò)程中需要填寫(xiě)以下參數(shù),在Conmmon那一欄填寫(xiě)你為dokcer倉(cāng)庫(kù)準(zhǔn)備的域名
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:10.34.31.13:5000
Email Address []:

4、創(chuàng)建docker倉(cāng)庫(kù)

# 這里啟動(dòng)方式跟上面差別不大,多了掛載/certs文件夾和添加了兩個(gè)certificate參數(shù)
docker run -d \
 --restart=always \
 --name registry \
 -v /certs:/certs \
 -v /var/lib/registry:/var/lib/registry \
 -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 \
 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.cert \
 -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
 -p 5000:5000 \
 registry:2.6.2

5、配置docker客戶端

# 以后需要使用這個(gè)倉(cāng)庫(kù)的機(jī)器,在客戶端像這樣配置一下就可以了
mkdir /etc/docker/certs.d/10.34.31.13:5000
cp /certs/domain.cert /etc/docker/certs.d/10.34.31.13:5000/ca.crt

# 現(xiàn)在就可以測(cè)試一下了
docker push 10.34.31.13:5000/hello-world:v1

使用kubernetes部署docker倉(cāng)庫(kù)

上面的容器是由doker直接啟動(dòng)的,由于我使用的是kubernetes集群,所以我希望一切容器都能由kubernetes來(lái)管理。

于是我為kubernetes集群添加了一個(gè)node節(jié)點(diǎn),來(lái)做k8s集群的鏡像倉(cāng)庫(kù)。

1、生成ssl證書(shū)

參考上面,在準(zhǔn)備的node節(jié)點(diǎn)上生成ssl證書(shū)。

2、給node添加標(biāo)簽

因?yàn)槲抑幌朐谶@臺(tái)節(jié)點(diǎn)上運(yùn)行registry容器,所以需要給這臺(tái)節(jié)點(diǎn)添加標(biāo)簽,便于k8s部署能只選到這臺(tái)節(jié)點(diǎn)。

# n3是這個(gè)節(jié)點(diǎn)的hostname.如果沒(méi)有添加k8s客戶端權(quán)限,可以在master節(jié)點(diǎn)上執(zhí)行。
kubectl label node n3 bind-registry=ture

3、創(chuàng)建registry目錄,用于持久化images數(shù)據(jù)

mkdir /var/lib/registry

4、部署registry。dockerhub-dp.yaml我會(huì)在最后面貼出來(lái)。

kubectl create -f dockerhub-dp.yaml

5、配置docker客戶端

這個(gè)跟上面一個(gè)思路,端口稍有不同。

# 以后需要使用這個(gè)倉(cāng)庫(kù)的機(jī)器,在客戶端像這樣配置一下就可以了
mkdir /etc/docker/certs.d/10.34.31.13:30003
cp /certs/domain.cert /etc/docker/certs.d/10.34.31.13:5000/ca.crt

為了訪問(wèn)方便,我將registry service的端口設(shè)置為了NodePort,但k8s限制這個(gè)端口只能設(shè)置為30000以上,所有我這里設(shè)置為了30003。

dockerhub-dp.yaml

apiVersion: apps/v1beta2
kind: Deployment
metadata:
 name: docker-local-hub
 namespace: kube-system
 labels:
  app: registry
spec:
 replicas: 1
 selector:
  matchLabels:
   app: registry
 template:
  metadata:
   labels:
    app: registry
  spec:
   containers:
   - name: registry
    image: registry:2.6.2
    ports:
    - containerPort: 5000
    env:
    - name: REGISTRY_HTTP_TLS_CERTIFICATE
     value: "/certs/domain.cert"
    - name: REGISTRY_HTTP_TLS_KEY
     value: "/certs/domain.key"
    volumeMounts:
    - mountPath: /var/lib/registry
     name: docker-hub
    - mountPath: /certs
     name: certs
   nodeSelector:
    bind-registry: "ture"
   volumes:
   - name: docker-hub
    hostPath:
     path: /var/lib/registry
     type: Directory
   - name: certs
    hostPath:
     path: /certs
     type: Directory
---
apiVersion: v1
kind: Service
metadata:
 name: docker-local-hub
 namespace: kube-system
 labels:
  app: registry
spec:
 selector:
  app: registry
 ports:
 - port: 5000
  targetPort: 5000
  nodePort: 30003
 type: NodePort

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Docker中redis集群部署實(shí)戰(zhàn)

    Docker中redis集群部署實(shí)戰(zhàn)

    這篇文章主要介紹了Docker中redis集群部署實(shí)戰(zhàn)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 查看docker中運(yùn)行的JVM參數(shù)問(wèn)題及解決方法

    查看docker中運(yùn)行的JVM參數(shù)問(wèn)題及解決方法

    這篇文章主要介紹了查看docker中運(yùn)行的JVM參數(shù),方法一使用的是jcmd命令,方法二是jinfo命令,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2022-04-04
  • Docker出現(xiàn)tag顯示none鏡像的處理方案

    Docker出現(xiàn)tag顯示none鏡像的處理方案

    本文介紹了Docker中出現(xiàn)REPOSITORY和TAG都顯示為<none>的鏡像,即懸掛鏡像的原因,并提供了解決方法,包括查找和刪除懸掛鏡像,以及為它們指定新的標(biāo)簽
    2025-02-02
  • Linux下Docker CE使用從包中安裝的方式詳解

    Linux下Docker CE使用從包中安裝的方式詳解

    這篇文章主要為大家詳細(xì)介紹了Linux下Docker CE使用從包中安裝的方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Docker查看是否開(kāi)機(jī)自啟及容器自啟動(dòng)設(shè)置

    Docker查看是否開(kāi)機(jī)自啟及容器自啟動(dòng)設(shè)置

    Docker是當(dāng)前最流行的容器技術(shù),通過(guò)運(yùn)用容器打包應(yīng)用程序并部署到生產(chǎn)環(huán)境中,可大大提高部署的速度和可靠性,下面這篇文章主要給大家介紹了關(guān)于Docker查看是否開(kāi)機(jī)自啟及容器自啟動(dòng)設(shè)置的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 詳解MAC OSX Docker開(kāi)發(fā)環(huán)境搭建

    詳解MAC OSX Docker開(kāi)發(fā)環(huán)境搭建

    本篇文章主要介紹了詳解MAC OSX Docker開(kāi)發(fā)環(huán)境搭建,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • 安裝harbor作為docker鏡像倉(cāng)庫(kù)的問(wèn)題

    安裝harbor作為docker鏡像倉(cāng)庫(kù)的問(wèn)題

    這篇文章主要介紹了安裝harbor作為docker鏡像倉(cāng)庫(kù),主要包括docker和docker-compose離線部署,安裝harbor作為本地的倉(cāng)庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 詳解ubuntu 16.04安裝docker教程

    詳解ubuntu 16.04安裝docker教程

    本篇文章主要介紹了ubuntu 16.小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • 簡(jiǎn)述Docker安裝Tomcat鏡像并部署web項(xiàng)目

    簡(jiǎn)述Docker安裝Tomcat鏡像并部署web項(xiàng)目

    這篇文章主要介紹了簡(jiǎn)述Docker安裝Tomcat鏡像并部署web項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • docker?run?-d和docker?run?-it的區(qū)別詳解

    docker?run?-d和docker?run?-it的區(qū)別詳解

    記得第一次接觸docker的時(shí)候,教程中寫(xiě)著docker?run?-it之類(lèi)的命令,當(dāng)時(shí)對(duì)這個(gè)-it選項(xiàng)是一知半解,下面這篇文章主要給大家介紹了關(guān)于docker?run?-d和docker?run?-it的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

高陵县| 正蓝旗| 邵阳市| 阜平县| 新疆| 忻城县| 呼图壁县| 双桥区| 黄大仙区| 朝阳区| 铜陵市| 栾城县| 太谷县| 金平| 迁安市| 化州市| 绵竹市| 清水河县| 松阳县| 邯郸市| 大城县| 铜梁县| 潜山县| 平顺县| 扎鲁特旗| 福清市| 长沙县| 壶关县| 彭州市| 大田县| 锡林郭勒盟| 榕江县| 四川省| 肇源县| 乐亭县| 江川县| 县级市| 尉犁县| 五台县| 江都市| 博湖县|