实战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