详解Docker-compose networks 的例子

 更新时间:2018年09月27日 09:25:31   作者:klvchen  
这篇文章主要介绍了详解Docker-compose networks 的例子,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

今天实验了下 docker 下的网络设置,记录一下过程,以免后面忘记。

(系统:Centos 7.4 ,docker 版本:18.03.1-ce, docker-compose version 1.18.0)

cat docker-compose.yml 
version: '3'
services: 
 test1:
  image: busybox:latest     # 镜像为 busybox
  entrypoint:          # 容器启动后执行 top 命令,使容器没法立即退出
   - top
  networks:
   backend:     # 使用指定的网络 backend, 并且设置网络别名为 test1,
    aliases:    # 设置网络别名后,可以在其他容器中 ping test1 访问到该容器
     - test1

 test2:
  image: busybox:latest
  entrypoint:
   - top
  networks:
   backend:
    aliases:
     - test2

networks:
 backend:

启动

docker-compose up -d

docker ps -a
CONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMES
4d05ceb2088d    busybox:latest   "top"        5 seconds ago    Up 4 seconds              ibaboss_test2_1
f4ccafa24664    busybox:latest   "top"        5 seconds ago    Up 4 seconds              ibaboss_test1_1

docker exec -it 4d05ceb2088d /bin/sh
/ # ping test1
PING test1 (172.19.0.2): 56 data bytes
64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.061 ms
64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.062 ms

ping ibaboss_test1_1
PING ibaboss_test1_1 (172.19.0.2): 56 data bytes
64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.045 ms
64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.056 ms
64 bytes from 172.19.0.2: seq=2 ttl=64 time=0.061 ms

# 在网络中可以通过 容器名字或者网络的别名 进行通信

Compose 的容器名称格式是:<项目名称><服务名称><序号>

虽然可以自定义项目名称、服务名称,但是如果你想完全控制容器的命名,可以使用这个标签指定:

container_name: app
cat docker-compose_v1.yml 
version: '3'
services: 
 test1:
  image: busybox:latest
  entrypoint:
   - top
  container_name: test1
  networks:
   - backend

 test2:
  image: busybox:latest
  entrypoint:
   - top
  container_name: test2
  networks:
   - backend

networks:
 backend:

启动

docker-compose -f docker-compose_v1.yml up -d

docker ps -a
CONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMES
132859fc77c2    busybox:latest   "top"        About a minute ago  Up About a minute            test2
cd0a78dc9bd4    busybox:latest   "top"        About a minute ago  Up About a minute            test1

docker exec -it 132859fc77c2 ping test1
PING test1 (172.19.0.2): 56 data bytes
64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.070 ms
64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.068 ms
64 bytes from 172.19.0.2: seq=2 ttl=64 time=0.059 ms

补充:

docker compose 多容器共用网络问题

前几天计划使用docker compose 编写一个多容器共用一个容器网络,结果总是报错,今天又试了一下才发现是端口绑定的问题造成的,端口只能绑定在产生网卡的容器上,绑定在其它窗口上就会报错,如下代码 mysql服务共用了nginx的网卡,在mysql里使用了port:3306时就会运行失败,将3306移到nginx上启动就成功了。

version: '3.3'
services:
nginx:
image: "lnp_php"
# container_name: "lnmp_nginx"
ports:
- "80:80"
- "443:443"
- "3306:3306"
expose:
- "3306"
volumes:
- /home/www/php:/home/www:rw
# depends_on:
# - mysql
# links:
# - mysql
mysql:
image: "mysql"
# container_name: "lnmp_mysql"
# ports:
# - "3306:3306"
# expose:
# - "3306"
volumes:
- /home/docker/conf/mysql_w:/etc/mysql:rw
environment:
- MYSQL_ROOT_PASSWORD=123456
depends_on:
- nginx
network_mode: "service:nginx"

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

相关文章

  • Docker 默认bridge网络中配置DNS的方法

    Docker 默认bridge网络中配置DNS的方法

    这篇文章主要介绍了Docker 默认bridge网络中配置DNS的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 使用Docker部署Nginx+Flask+Mongo的应用

    使用Docker部署Nginx+Flask+Mongo的应用

    这篇文章主要介绍了使用Docker部署Nginx+Flask+Mongo的应用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Docker容器修改配置文件的实现

    Docker容器修改配置文件的实现

    这篇文章主要介绍了Docker容器修改配置文件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 如何在centos的docker里安装jupyter并开放端口

    如何在centos的docker里安装jupyter并开放端口

    上次有一朋友问小编如何在centos的docker里安装jupyter并开放端口呢?在这就不一一回复大家了,下面小编把我的个人经验分享到脚本之家平台,感兴趣的朋友一起看看吧
    2021-08-08
  • Docker 部署Go的两种基础镜像的实现

    Docker 部署Go的两种基础镜像的实现

    这篇文章主要介绍了Docker 部署Go的两种基础镜像的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Docker阿里云RocketMQ 4.5.1部署流程详解

    Docker阿里云RocketMQ 4.5.1部署流程详解

    RocketMQ是阿里开源的一款分布式消息中间件,具有日志监控、消息推送、金融报文、电信信令、削峰填谷等功能.接下来通过本文给大家介绍Docker阿里云RocketMQ 4.5.1部署流程,感兴趣的朋友一起看看吧
    2021-05-05
  • centOS7安装docker的详细步骤

    centOS7安装docker的详细步骤

    这篇文章主要为大家介绍了centOS7安装docker的详细步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • CentOS 8.4安装Docker的详细教程

    CentOS 8.4安装Docker的详细教程

    这篇文章主要介绍了CentOS 8.4安装Docker的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • Docker容器化spring boot应用详解

    Docker容器化spring boot应用详解

    本篇文章主要介绍了Docker容器化spring boot应用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 使用Maven打包构建Docker镜像并推送到仓库

    使用Maven打包构建Docker镜像并推送到仓库

    这篇文章主要介绍了使用Maven打包构建Docker镜像并推送到仓库问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04

最新评论