docker-ce-17.09 网络基础配置
发布时间:2020-12-16 03:21:31 所属栏目:安全 来源:网络整理
导读:一、端口映射实现访问容器 1、我们先从pull一个nginx镜像,然后后台运行该镜像 docker pull nginx docker run -d -P nginx:latest 使用-P标记,docker会随机映射一个端口至容器内部开放的网络端口。 然后在本地主机上通过32773端口就可访问容器内的服务 如果
一、端口映射实现访问容器 1、我们先从pull一个nginx镜像,然后后台运行该镜像 > docker pull nginx
> docker run -d -P nginx:latest
使用-P标记,docker会随机映射一个端口至容器内部开放的网络端口。 然后在本地主机上通过32773端口就可访问容器内的服务 如果出现如下问题: WARNING: IPv4 forwarding is disabled. Networking will not work.
修改/etc/sysctl.conf,添加如下代码: > vi /etc/sysctl.conf
net.ipv4.ip_forward=1
然后重启network服务 > systemctl restart network
当然我们也可以自已定义映射的端口 > docker run -d -p 8881:80 nginx:latest
把主机的8881端口映射到容器80端口 我们也可以指定地址来映射端口 > docker run -d -p 192.168.137.222:8882:80 nginx:latest
查看映射端口配置(676b282131f3是容器ID): > docker port 676b282131f3
? 二、容器互联实现容器间通信 容器间的连接,会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息。 1、我们先创建一个mysql容器 > docker pull mysql
> docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
--name可以自定义容器名称 2、再创建一个nginx容器,并连接到mysql容器 > docker run -d -P --name nginx --link mysql:mysql nginx:latest
3、我们进入nginx容器,这时我们就可以访问mysql容器 > docker inspect --format "{{.State.Pid}}" c6b1b49cabf4
> nsenter --target 3756 --mount --uts --ipc --net --pid
> ping mysql
3756表示通过第一条语句查询出的容器进程PID。 官方默认nginx容器没有安装ping,需自行安装。 我们也可以看看/etc/hosts下mysql到底被解析到了哪里。 ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |