標籤: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與區域網路主機相通詳細配置