docker容器網絡設置

測試鏡像/tmp/dockerfile
#Container connection test
FROM ubuntu:14.04
RUN apt-get install -y ping
RUN apt-get update
RUN apt-get install -y nginx

RUN apt-get install -y php5-fpm

RUN apt-get install -y curl
EXPOSE 80
CMD /bin/bash

//創建測試鏡像
cd /tmp
#docker build -t dormancypres/cct(鏡像名字) .

sudo docker build -t="ouruser/sinatra:v2" .


docker run -p 8401:80 --name port_test_1 -i -t test/cct1 /bin/bash


網橋管理工具
Ubuntu默認沒有,安裝:sudo apt-get install bridge-utils

sudo brctl show

自定義docker0
sudo ifconfig docker0 192.168.200.1 net mask 255.255.255.0

添加虛擬網橋
sudo brutal adder br0
sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0
sudo service docker restart

查看新配置網橋有沒有生效
ps -ef|grep docker
更改docker守護進程的啓動配置
/etc/default/docker中添加DOCKER_OPS值
-b=br0

ctrl+p+q
docker attach cct1//重新附加到cct1容器
docker stop cct1
docker restart cct1
docker attach cct1
容器重啓之後,ip地址會發生變化

—-link
docker run -i -t —-name cct3 —-link=cct1:wettest dormancypress/cct

容器與外部網絡的鏈接
ip_forward
iptables
允許端口映射訪問
限制ip訪問容器

—-ip_forward 默認ture 數據轉發  啓動進程開啓時自動將它設置爲1
查看數據轉發是否開啓
sudo sysctl net.ipv4.conf.all.forwarding
iptables -L -n

端口映射
阻止某個ip訪問
iptables -I DOCKER -s 10.211.55.3 -d 172.17.0.7 -p TCP —-dport 80 -j DROP



[root@1fadddce user]# service mysqld status
bash: service: command not found
在普通用戶下不能用service。。。。那麼我用root登錄吧。。。還是不行。。然後網上搜到了這個命令。。su -l root (應該和SU登錄一樣的阿=。=)這樣卻行了。。
很簡單,這個問題是這樣的,
su 或者 su root:的話只是將當前身份轉爲root,用戶shell並沒有改變.所以有些系統命令不能使用.  
su -或者su -l或者su -l root,可以完全的將當前環境轉爲root環境.如同root直接登陸. 
其次,service的路徑爲/sbin/service
如果shell沒有改變,那麼你的PATH中默認沒有/sbin,所以不行,而如果用su -命令環境改爲root,PATH中就包含/sbin
希望對你有幫組


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章