實戰1:container 端口映射
1.啓動 container
命令:[root@localhost ~]# docker run -d -p 80:80 docker.io/centos:httpd /bin/bash -c /usr/local/bin/start.sh
解析:
-d 表示的是後臺運行
-p 表示端口
{
前面的80表示的是 物理機的端口號80
後面的80表示的是 容器的端口號 80
}
docker.io/centos.httpd這個是鏡像名
-c 是調用 後面的 /usr/local/bin/start.sh 表示的是容器中的一條命令
{
}
執行結果如下圖:
2.使用netstat 命令查看80端口
2.1 安裝netstat命令
[root@localhost ~]# yum install net-tools # 安裝netstat 命令
2.2 使用netstat命令查看
[root@localhost ~]# netstat -antup | grep 80 #查看80端口的信息
查看結果如下圖:
測試:http://192.168.1.133 #這個是Vmware 虛擬機中Linux的IP地址,而docker 是建立在這個Linux上的。
我們測試發現,我們無法連通到docker 的那個鏡像。我們經過排查發現問題在了 我們禁用了ipv4的轉發功能
解決方案:{
1、修改sysctl.conf,添加ipv4轉發爲打開狀態:
[root@localhost ~]# vim /etc/sysctl.conf
在打開的文件中寫入內容:
net.ipv4l.ip_forward=1
2、重啓網卡嗎,使之生效:
[root@localhost ~]# systemctl restart network
}
再次在物理機上的瀏覽器中輸入 http://192.168.1.133