centos 安裝部署docker與區域網路主機相通詳細配置

來源:互聯網
上載者:User

標籤:docker安裝 docker部署 docker多容器通訊配置

Docker 是一個開源的應用程式容器引擎,讓開發人員可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化.有了docker,對於營運和開發都是福音。下面直接上配置:

centos安裝docker源:

yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm

安裝docker:

yum install -y docker-io

啟動docker:

service docker start

如果啟動報錯的話:

/usr/bin/docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference

解決:yum install device-mapper-event-libs

然後再次啟動docker即可。

docker可以建立本次倉庫,也可以將鏡像提交到公有倉庫,下面講建立本地倉庫:

建立本地倉庫:

 docker run -d -p 5000:5000 registry

建立完成啟動之後,你會發現 使用docker push無法上傳此時:

 注意 需要https驗證:修改/etc/init.d/docker

 增加:

  DOCKER_OPTS="--insecure-registry 192.168.1.231:5000"##我的ip為192.168.1.231,根據實際情況修改

  將 $exec -d $other_args &>> $logfile &改成$exec -d $DOCKER_OPTS &>> $logfile &

  重新啟動docker,再次push就OK了

  service docker restart

初步搭建就此完成。下面講多個伺服器之間怎麼搭建橋接器通訊。

注意事項:

1.docker啟動容器之後,或預設建立一個橋接器,並且會為啟動的容器自動分配一個ip,這個時候可以容器和主機是相通的,但是與其他主機是不通的。

要想與其他容器相通,可以自己建立橋接器,將物理網卡加入橋接器,並且此時啟動的容器必須為手動給到ip(pipeword),要不然會導致區域網路內不能上網

設定自訂橋接器,修改網路設定:

cp /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-br0

vi /etc/sysconfig/network-scripts/ifcfg-br0加入:

DEVICE="br0"

ONBOOT=yes

TYPE="Bridge"

BOOTPROTO=ststic

IPADDR=192.168.1.215

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS=119.6.6.6

DEFROUTE=yes

vi /etc/sysconfig/network-scripts/ifcfg-eth1##將網卡加入橋接器

DEVICE=eth0

HWADDR=00:0c:29:a2:9e:53

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

BRIDGE=br0

#IPADDR=192.168.1.215

#NETMASK=255.255.255.0

#GATEWAY=192.168.1.1

重新啟動 service network restart

刪除以前的橋接器:##docker0 為你啟動容器時候自動建立

ip link set dev docker0 down

brctl delbr docker0

查看橋接器:

brctl show##此時可以看見了eth0已經加入到橋接器了

啟動容器的時候,不要自動分配ip,要不然會導致區域網路不能上網 加上--name xxx --net=none

eg: docker run -it --name 123 --net=none centos /bin/bash

使用pipe工具設定靜態ip:

git clone https://github.com/jpetazzo/pipework 

直接進入pipework目錄:

./pipework br0##橋接器名稱 123##容器名稱 192.168.1.175/[email protected]##@後面為網關,此時可以和其他主機相通了

設定時候可能會報錯:Object "netns" is unknown, try "ip help"

解決辦法:rpm -Uvh https://repos.fedorapeople.org/openstack/EOL/openstack-grizzly/epel-6/iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm

完成之後就可以設定ip了。可以使brctl show可以查看已經多了一個網卡。進入容器可以看到ip已經設定完成

配置ssh登入:

yum install openssh-server -y


mkdir -p /var/run/sshd

/usr/sbin/sshd -D &

修改ssh服務的安全登入配置,取消pam登入限制:

將 session   required  pam_loginuid.so 注釋掉即可

mkdir /root/.ssh

cd /root/.ssh

ssh-keygen -t rsa##生產公開金鑰

passwd root

xxx

xxx


最後建立啟動指令碼

vi /root/run.sh

#!/bin/bash

/usr/sbin/sshd -D


chmod +x /root/run.sh


最後commit鏡像即可

啟動容器:

docker run -d centos /root/run.sh##ssh服務自動開啟,此時可以通過ip和密碼登入,安裝你想安裝的東西,然後commit了。




本文出自 “nginx安裝最佳化” 部落格,請務必保留此出處http://mrdeng.blog.51cto.com/3736360/1768771

centos 安裝部署docker與區域網路主機相通詳細配置

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.