Docker 基础网络配置详解

 更新时间:2018年09月26日 16:18:46   作者:江上清风游  
这篇文章主要介绍了Docker 基础网络配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

外部访问

随机映射端口

使用 -P 标记,Docker会随机映射一个49000-49900的端口到内部容器开放的网络端口
docker run -d -P training/webapp python app.py
docker ps -l # 显示最近创建的容器
docker logs -f web # 查看应用的信息

映射所有接口地址

docker run -d -p 5000:5000 training/webapp python app.py

映射到指定地址的指定端口

docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py

映射到指定地址的任意端口

docker run -d -p 127.0.0.1::5000 training/webapp python app.py

指定udp端口

docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

查看映射端口配置

dokcer port web 5000

新建一个docker网络

docker network create -d bridge my-net

运行容器连接到新建的my-net网络

docker run -it --rm --name busybox1 --network my-net busybox sh
docker run -it --rm --name busybox2 --network my-net busybox sh

查看容器信息

docker container ls
容器内ping测试容器是否互联

多个容器互联 推荐Docker Compose

配置DNS 宿主机DNS信息更新后,所有Docker容器的DNS配置通过/etc/resolv.conf立即更新

配置全部容器的DNS

vim /etc/docker/daemon.json 增加内容

{
 'dns':[
  "114.114.114.114",
  "8.8.8.8"
 ]
}

docker run -it --rm ubuntu:17.10 cat /etc/resolv.conf

容器互联

容器的连接系统是除了端口映射外另一种可以与容器中应用进行交互的方式。

它会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息。

自定义容器名

连接系统根据容器的名称执行,所以需要自定义一个较为简单容易区分的容器名。

自定义命名使用--name参数,这个在之前的文章中已经遇到过了:

docker run -d -p --name db mysql

容器的命名必须是唯一的。

执行docker run时,如果加上--rm参数,容器在终止后悔立即被删除,但是不能与-d参数一同使用。

容器互联

使用--link参数可以让容器间建立安全的连接进行交互。

下面是一个示例:

首先创建一个数据库的容器:

docker run -d --name db training/postgres

然后创建web容器:

docker run -d -P --name web --link db:db training/webapp python app.py

此时db容器和web容器加你互联关系。

--link参数:--link name:alias,name是要连接的容器的名字,alias是这个连接的别名。

可以使用docker ps查看容器信息,其中names列就能看出互联的状态。

docker在两个互联的容器之间建立了一个安全隧道,不需要吧他们的端口映射到宿主主机上,也可以避免端口的暴露。

Docker通过两种方式公开连接信息:

  • 环境变量
  • 更新/etc/hosts文件

使用env命令查看刚刚的web容器的环境变量:

docker run --rm --name web2 --link db:db training/webapp env ...

其中DB_开头的环境变量是供web容器连接db容器使用,前缀采用大写的连接别名。

除了环境变量,Docker还添加host信息到父容器的/etc/hosts文件。其中web容器会以自己的ID作为默认主机名,db容器以db作为主机名。

比如多个web到db容器的情况,可以链接多个子容器到父容器上。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 如何修改Docker部署gitlab的外部访问地址和端口

    如何修改Docker部署gitlab的外部访问地址和端口

    这篇文章主要介绍了如何修改Docker部署gitlab的外部访问地址和端口问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Docker搭建prometheus(普罗米修斯)的方法步骤

    Docker搭建prometheus(普罗米修斯)的方法步骤

    phometheus:当前一套非常流行的开源监控和报警系统,本文主要介绍了Docker搭建prometheus(普罗米修斯)的方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Docker配置redis哨兵模式的方法(多服务器上)

    Docker配置redis哨兵模式的方法(多服务器上)

    这篇文章主要介绍了Docker配置redis哨兵模式的方法(多服务器上),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 如何在Docker中部署运行jar

    如何在Docker中部署运行jar

    这篇文章主要介绍了如何在Docker中部署运行jar问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • k8s官方镜像代理加速方式

    k8s官方镜像代理加速方式

    这篇文章主要介绍了k8s官方镜像代理加速方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Centos-docker文件迁移的解决办法

    Centos-docker文件迁移的解决办法

    Docker镜像默认存放在系统的根目录下,可能会导致根目录空间不足或其他风险,为了避免这些问题,可以将Docker镜像的存储位置更改到其他磁盘,本文介绍Centos-docker文件迁移的解决办法,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • 多云环境下的Docker部署策略实现

    多云环境下的Docker部署策略实现

    在多云环境下,Docker容器技术为应用程序的部署提供了高度的灵活性和可扩展性,本文就来介绍一下多云环境下的Docker部署策略实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Docker 限制容器可用的CPU的方式

    Docker 限制容器可用的CPU的方式

    这篇文章主要介绍了Docker 限制容器可用的CPU的方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • IDEA集成docker部署springboot项目的全过程

    IDEA集成docker部署springboot项目的全过程

    这篇文章主要介绍了IDEA集成docker部署springboot项目,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Docker镜像创建的方法

    Docker镜像创建的方法

    本文给大家汇总介绍了docker中镜像创建的几种方法,包括基于已有镜像创建、基于本地模板创建以及基于Dockerfile创建。有需要的小伙伴可以参考下
    2018-08-08

最新评论