Docker容器技术
Docker基础概念
Docker安装配置
通过docker registry搭建私有仓库
Dockerfile编写学习
数据卷管理
Docker 镜像
Docker容器管理
daemon.json配置示例
Dcocker网络互联
Docker部署nextcloud网盘
Watchtower-容器的自动升级
想要轻松上手Docker?Portainer帮你实现零基础快速部署!
Nextcloud搭建
Docker搭建Mrdoc
Mrdoc迁移记录
Docker部署wordpress博客
Docker部署个人密码管理平台bitwarden
Docker-compose安装配置
Docker-compose搭建小说阅读器
Docker搭建青龙面板
Docker搭建自己的导航页dashy
uptime-kuma监控面板部署
容器搭建Nas-tool及相关套件
本文档使用 MrDoc 发布
-
+
首页
Dcocker网络互联
## Dcocker网络互联 每个容器也是有自己的ip地址的,默认的地址像172.17.0.x/16这种。主要是挂载在主机的docker0上,用于与容器通讯以及容器间通讯。 ## 端口映射 默认使用`docker run`指令不指定参数,外部是无法访问容器的,但是像nginx,apache,mysql等需要对外提供访问的容器通过什么方式来实现呢? 使用`-p(小写)`或者`-P(大写)`来将容器的网络端口映射到主机的端口提供对外访问。 指定端口映射: ``` # 通过 docker run -p(小写)实现端口映射 # hostPort:containerPort # 所有接口的指定端口 # ip:hostPort:containerPort # 一些服务器可能有多个网卡,可以指定到特定网卡的端口 # ip::containerPort # 指定地址的随机端口 # 将nginx容器的80端口映射到本地所有接口地址的80端口 docker run --name nginx -p 80:80 nginx # 还可以指定udp类型 docker run -d -p 127.0.0.1:53:53/udp dns-server ``` 随机端口映射: ``` # 通过docker run -P(大写)实现随机端口映射,会随机在主机的高位端口映射到容器的expose暴露端口,前提容器或者镜像有配置expose端口 docker run -d --name mysql -P -e MYSQL_ROOT_PASSWORD=Acb123. mysql ``` 查看端口映射规则: ``` # docker port 容器名称 [root@localhost etc]# docker port mysql 3306/tcp -> 0.0.0.0:32769 3306/tcp -> [::]:32769 33060/tcp -> 0.0.0.0:32768 33060/tcp -> [::]:32768 ``` ## 容器互联 不同容器间互联主要通过定义唯一的容器名称与链接容器关系实现。 `--name`指定容器名称,该名称是唯一,不能相同。 `--link`用于将容器与另外一个容器进行安全连接,不需要暴露端口等。 ``` --link name:alias docker run -itd --link test:test_link nginx # 连接子容器test,链接名称test_link 查看父容器的/etc/hosts可以看到对应的条目信息。 ``` Docker可以通过端口映射到宿主机对外提供访问,如果是使用docekr run运行时指定了别名可以通过别名实现两个容器间dns访问,减少了互相的端口映射。
Chuck
2023年12月22日 17:53
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码