欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解基于Docker的服務(wù)部署流程

 更新時間:2018年06月29日 11:11:32   作者:missile2010  
這篇文章主要介紹了詳解基于Docker的服務(wù)部署流程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本次總結(jié)涉及到Docker-io、Docker-ce的安裝、CentOS7鏡像的制作、Docker私有倉庫搭建、CentOS6.7環(huán)境下從CentOS7私有倉庫拉取私有鏡像、Docker容器運行、CentOS6.5及CentOS7一起運行時兼容性處理等內(nèi)容。

一、Docker基本組件及DevOps運作流程

DockerImage:Docker鏡像是一個運行容器的只讀模板。

DockerContainer:Docker容器是一個運行應(yīng)用的標(biāo)準(zhǔn)化單元。

DockerRegistry:Docker注冊服務(wù)器用來存放鏡像。

DockerEngine:Docker引擎用來在主機上創(chuàng)建,運行和管理容器。

二、Docker安裝與配置

由于Docker國外站點下載較慢或無法正常下載,需要更新為國外源之后再進行快速安裝配置。CentOS6.5安裝docker-io,CnetOS7安裝docker-ce

#創(chuàng)建docker相關(guān)的目錄

mkdir -p /data/docker

#安裝docker運行必要工具

sudo yum install -y yum-utilsdevice-mapper-persistent-data lvm2 crontabs

#增加docker下載倉庫,使用阿里云倉庫下載,國外站點下載太慢

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo yum makecache fast

#安裝docker并檢測docker安裝運行情況

sudo yum -y install docker-ce

docker version

systemctl enable docker.service

systemctl start docker.service

#配置docker

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json<<-'EOF'

{"graph": "/data/docker"}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

三、搭建私有Docker倉庫

Docker安裝完成后dockerd的配置文件在/etc/docker/daemon.json中,如果沒有該文件,可以手動創(chuàng)建。

1、安裝配置registry鏡像

pull docker官方的registry的第二個版本,docker1.6版本以上支持registry2

docker pull registry:2.6.0

或者不指定版本,表示latest版本

docker pull registry

配置daemon.json,去掉docker默認(rèn)的https的訪問,否則易出現(xiàn)如下問題:

Get https://120.78.253.133:5000/v2/:http: server gave HTTP response to HTTPS client

打開配置文件

vim /etc/docker/daemon.json

里面的內(nèi)容是一個json對象,加上一項insecure-registries,地址自己更改:

{

  "insecure-registries":["192.168.1.78:5000"]

}

此處設(shè)置無效時,直接配置服務(wù)程序如下(增加紅色字體內(nèi)容):

vim/usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd --insecure-registry 172.18.3.242:5000

重啟docker

systemctl daemon-reload

systemctl restart docker

2、無認(rèn)證啟動registry容器

上傳到私有倉庫的鏡像時是默認(rèn)存放在容器的/var/lib/registry/,為了防止刪除registry時上傳的鏡像也被刪除,所以啟用一個volume,將上傳的鏡像持久化保存在我們物理機上,這里保存位置是/opt/registry/。

復(fù)制代碼 代碼如下:
docker run -d --name registry -p5000:5000 --restart=always -v /opt/registry/:/var/lib/registry/ registry:2.6.0

測試是否啟動容器

curlhttp://192.168.1.78:5000/v2/_catalog

如果返回以下信息表示啟動成功

{"repositories":["mynginx"]}

3、私有倉庫推拉私有鏡像

測試上傳到我們自己的私有registry,首先將mynginx鏡像重命名tag:

docker tag mynginx 192.168.1.78:5000/mynginx

這里需要注意的是重命名的tag必須帶有建立192.168.1.78:5000/這個前綴,后面的mynginx是新鏡像名,二者名稱可以不同。然后開始push到我們建立的私有registry倉庫:

docker push 192.168.1.78:5000/mynginx

檢測推送鏡像的情況,返回以下結(jié)果說明推送正常。

curl http://192.168.1.78:5000/v2/_catalog

{"repositories":["mynginx"]}

測試私有倉庫鏡像拉取pull,本機拉取如下:

docker rmi 192.168.1.78:5000/mynginx

其他物理主機拉取私有倉庫鏡像,在安裝docker前提下配置/etc/docker/daemon.json文件添加insecure-registries,ip地址自己更改:

{
  "insecure-registries":["192.168.1.78:5000"]
}

然后重啟docker,執(zhí)行pull,同理也可以上傳鏡像

systemctl daemon-reload

systemctl restart docker

docker pull 192.168.1.78:5000/mynginx

4、Dockerfile創(chuàng)建服務(wù)鏡像

Dockfile是一種被Docker程序解釋的腳本,Dockerfile由一條一條的指令組成,每條指令對應(yīng)Linux下面的一條命令。Docker程序?qū)⑦@些Dockerfile指令翻譯真正的Linux命令。Dockerfile有自己書寫格式和支持的命令,Docker程序解決這些命令間的依賴關(guān)系,類似于Makefile。Docker程序?qū)⒆x取Dockerfile,根據(jù)指令生成定制的image。相比image這種黑盒子,Dockerfile這種顯而易見的腳本更容易被使用者接受,它明確的表明image是怎么產(chǎn)生的。有了Dockerfile,當(dāng)我們需要定制自己額外的需求時,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻煩。

基于centos7創(chuàng)建鏡像,首先拉取centos7鏡像,

docker pull centos7

制作鏡像的dockerfile如下所示:

FROM centos:7

MAINTAINER tcy  tiancy@jovision.com

RUN yum  update  -y && \

  yum  install crontabs iproutewget net-tools gcc automake autoconflibtool make gcc gcc-c++  zlib* zlib-devel -y

RUN mkdir -p /home/mynginx

COPY  octmts /home/mynginx/octmts

COPY  tools /home/mynginx/tools

WORKDIR /home/mynginx/octmts

RUN chmod –R 755 *

RUN sh install.sh octmts

編譯創(chuàng)建鏡像

docker build -t octmts -f dockerfile-octmts  .

創(chuàng)建容器

程序文件和dockerfile放在同一目錄

復(fù)制代碼 代碼如下:
docker create --name octmts3.0 -v/home/docker_oct/data:/home/mynginx/octmts/log -p 50000:50000 -p 50001:50001 -p50002:50002 octmts1.0

創(chuàng)建容器+運行

復(fù)制代碼 代碼如下:
docker run -id --net=host --nameoctmts2.0 -v /home/docker_oct/data:/home/mynginx/octmts/log -p 50000:5000octmts1.0

創(chuàng)建CentOS7容器,使用systemctl后臺運行服務(wù)程序時遇到以下問題:

Failed to get D-Bus connection

解決方案(此方案在主機是CentOS6.5系統(tǒng)下無效,暫時無法處理):

復(fù)制代碼 代碼如下:
docker create --privileged --net=host --nameoctmts3.0 -v /home/docker_oct/data:/home/mynginx/octmts/log -p 50000:50000 -p50001:50001 -p 50002:50002 octmts1.0 /usr/sbin/init

或者

復(fù)制代碼 代碼如下:
docker run --privileged --net=host -id --nameoctmts3.0 -v /home/docker_oct/data:/home/mynginx/octmts/log -p 50000:5000octmts1.0 /usr/sbin/init

 四、CentOS6.5系統(tǒng)下使用私有倉庫的兼容問題

CentOS6.5系統(tǒng)下使用私有倉庫時由于版本問題導(dǎo)致pull私有鏡像失敗,Docker 1.7.1版本pull私有鏡像倉庫報錯,V1,V2等。Docker 1.7版本和Docker CE的配置文件的位置不同:

Docker 1.7版本 /etc/sysconfig/docker

Docker CE版本使用 /etc/docker/daemon.json

使用docker 1.7版本如果要pulldocker registry v2或harbor里的鏡像,如果沒有配置CA證書的話,需要配置insecure-registry,并且需要將這個參數(shù)加到docker daemon的啟動參數(shù)里。配置步驟:

1、Docker 1.7解決辦法

⑴ 配置DOCKER_OPTS參數(shù)并保存

[root@123 ] # vi /etc/sysconfig/docker

other_args=DOCKER_CERT_PATH=/etc/docker

## add
DOCKER_OPTS="--insecure-registry ip:port"

⑵ 修改啟動項

[root@123 ] # vi /etc/init.d/docker

## 找到 start 函數(shù),在exec處增加剛配置的DOCKER_OPTS,參見下邊空行處

start() {

  if [ ! -x $exec ]; then

   if [ ! -e $exec ]; then

    echo "Docker executable $exec not found"

   else

    echo "You do not have permission to execute the Docker executable$exec"

   fi

   exit 5

  fi

  check_for_cleanup 

  if ! [ -f $pidfile ]; then

    prestart

    printf "Starting $prog:\t"

    echo "\n$(date)\n" >> $logfile


    ## addDOCKER_OPTS

    $exec -d $DOCKER_OPTS &>> $logfile &

    pid=$!

    touch $lockfile

    # waitup to 10 seconds for the pidfile to exist. see

    #https://github.com/docker/docker/issues/5359

    tries=0

    while [ ! -f $pidfile -a $tries -lt 10 ]; do

      sleep 1

      tries=$((tries + 1))

    done

    success

    echo

  else

    failure

    echo

    printf "$pidfile still exists...\n"

    exit 7

  fi
}

⑶ 重啟docker并驗證pull功能

[root@123 ] # service docker restart

⑷其他方法

不這么費事,直接修改啟動項,原理和結(jié)果都是相同的,然后重啟dockerdaemon

[root@123 ] # vi /etc/init.d/docker

## 找到exec,直接添加--insecure-registry ip:port

prog="docker"

exec="/usr/bin/$prog --insecure-registryip:port"

pidfile="/var/run/$prog.pid"

lockfile="/var/lock/subsys/$prog"

logfile="/var/log/$prog"

2、Docker CE版本

檢查/etc/docker目錄下是否有daemon.json文件,如果沒有則創(chuàng)建,或者直接vi/etc/docker/daemon.json修改完在:wq也行。

[root@123 ] # vi /etc/docker/daemon.json

## add

{

 "registry-mirrors": ["https://registry.docker-cn.com"],

 "insecure-registries" : ["ip:port","ip:port"]

}

添加完成后重啟docker服務(wù)

service docker restart

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

相關(guān)文章

  • docker容器添加對外映射端口的實現(xiàn)

    docker容器添加對外映射端口的實現(xiàn)

    本文主要介紹了docker容器添加對外映射端口的實現(xiàn) ,從而實現(xiàn)容器與外部網(wǎng)絡(luò)的通信,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Docker容器日志查看與清理的方法(親測有效)

    Docker容器日志查看與清理的方法(親測有效)

    這篇文章主要介紹了Docker容器日志查看與清理的方法(親測有效),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Docker?Windows最新版(4.17.x)修改鏡像存儲路徑的詳細(xì)步驟

    Docker?Windows最新版(4.17.x)修改鏡像存儲路徑的詳細(xì)步驟

    這篇文章主要介紹了Docker?WIndows最新版(4.17.x)修改鏡像存儲路徑的步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Docker使用Swarm組建集群的方法

    Docker使用Swarm組建集群的方法

    Docker 使用 Swarm 可以很方便的在多個主機上創(chuàng)建容器集群,并且容器之間可以跨主機網(wǎng)絡(luò)通信。這篇文章主要介紹了Docker使用Swarm組建集群,需要的朋友可以參考下
    2017-11-11
  • 使用docker-compose,如何調(diào)整JVM參數(shù)

    使用docker-compose,如何調(diào)整JVM參數(shù)

    這篇文章主要介紹了使用docker-compose,如何調(diào)整JVM參數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Docker打包鏡像及修改配置的實現(xiàn)

    Docker打包鏡像及修改配置的實現(xiàn)

    這篇文章主要介紹了Docker打包鏡像及修改配置的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Docker?redmine項目管理工具的使用

    Docker?redmine項目管理工具的使用

    Redmine?是一個開源的,基于Web的項目管理和缺陷跟蹤工具,本文主要介紹了Docker?redmine項目管理工具的使用,具有一定的參考價值,感興趣的可以了解一下
    2022-01-01
  • Docker搭建 Nginx+PHP+MySQL 環(huán)境并部署WordPress實踐

    Docker搭建 Nginx+PHP+MySQL 環(huán)境并部署WordPress實踐

    本文給大家分享的是作者基于Docker搭建 Nginx+PHP+MySQL 環(huán)境并部署WordPress的詳細(xì)過程,非常的全面,有需要的小伙伴可以參考下
    2017-02-02
  • docker搭建odoo16開發(fā)環(huán)境的實現(xiàn)

    docker搭建odoo16開發(fā)環(huán)境的實現(xiàn)

    Odoo是全球流行的開源企業(yè)管理套件,本文主要介紹了docker搭建odoo16開發(fā)環(huán)境的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • docker倉庫登錄及配置insecure-registries的方法

    docker倉庫登錄及配置insecure-registries的方法

    這篇文章主要介紹了docker倉庫登錄配置insecure-registries的方法,docker客戶端如果配置中添加了insecure-registary配置,就不需要在docker 客戶端配置上對應(yīng)證書,如果不配置要在/etc/docker/certs.d/目錄中添加對應(yīng)證書才能正常登錄,感興趣的朋友跟隨小編一起看看吧
    2022-07-07

最新評論