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
希望对你有帮组


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