Docker 網路連線
CentOS7 下安裝 docker
1 | $sudo yum install docker |
1 | $sudo service docker start |
1 | $sudo chkconfig docker on |
安裝完成後,執行以下指令
1 | $docker run -it --name jeff -p 9080:9080 -v /home/jeff/code/:/home/code centos /bin/bash |
-v /home/jeff/code/:/home/code 掛載Host主機下目錄
一些問題
當進入container掛載目錄後,執行ls發生錯誤
[root@a52a9c808ba5 code]# ls: cannot open directory .: Permission denied
解法:
在Host掛載目錄下執行1
$chcon -Rt svirt_sandbox_file_t ./code/
容器要想存取外部網路,需要host支援forward
1
2$sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1如果為 0,說明沒有開啟轉發,則需要手動打開。
1
$sysctl -w net.ipv4.ip_forward=1
1
$service docker restart
進入container後ping外部ip確認是否成功連線
1
2
3[root@a52a9c808ba5 /]# ping 10.62.8.175
PING 10.62.8.175 (10.62.8.175) 56(84) bytes of data.
64 bytes from 10.62.8.175: icmp_seq=7 ttl=127 time=1.01 ms
參考:
[1] https://github.com/philipz/docker_practice
[2] http://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/
[3] http://www.infoq.com/cn/articles/docker-network-and-pipework-open-source-explanation-practice#rd