測試鏡像/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 希望對你有幫組