今天实验了下 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和docker-compose实例详解,包括了安装docker和docker-compose实例详解的使用技巧和注意事项,需要的朋友参考一下 1.卸载旧版本Docker 2.执行以下命令安装依赖包 3.鉴于国内网络问题,强烈建议使用国内源执行下面的命令添加 yum 软件源 4.安装Docker CE 5.设置开机启动 Docker CE 6.鉴于国内网络问题,后续拉取
本文向大家介绍Docker集群的创建与管理实例详解,包括了Docker集群的创建与管理实例详解的使用技巧和注意事项,需要的朋友参考一下 本文详细讲述了Docker集群的创建与管理。分享给大家供大家参考,具体如下: 在《Docker简单安装与应用入门教程》中编写一个应用程序,并将其转化为服务,在《Docker分布式应用教程》中,使应用程序在生产过程中扩展5倍,并定义应该如何运行。现在将此应用程序部署
本文向大家介绍docker-compose部署php项目实例详解,包括了docker-compose部署php项目实例详解的使用技巧和注意事项,需要的朋友参考一下 1.制定特定扩展的PHP镜像 2.编写yml文件 3.配置default.conf文件 4.修改mysql允许远程连接并新建数据库 5.创建并且启动容器 6.新建index.php测试mysql连接
本文向大家介绍Docker 私有仓库恢复实例详解,包括了Docker 私有仓库恢复实例详解的使用技巧和注意事项,需要的朋友参考一下 Docker 私有仓库恢复 之前openstack平台由于停电等影响,导致之前制作的registry 私有仓库的主机挂掉,还好数据挂载在nfs中,然后现在尝试重新启动恢复。 虚机安装nfs服务 apt-get install -y nfs-common 编辑 /etc
本文档主要介绍一个基于 jraft 的分布式计数器的例子。 场景 在多个节点(机器)组成的一个 raft group 中保存一个分布式计数器,该计数器可以递增和获取,并且在所有节点之间保持一致,任何少数节点的挂掉都不会影响对外提供的两个服务: incrmentAndGet(delta) 递增 delta 数值并返回递增后的值。 get() 获取最新的值 RPC 请求 jraft 底层使用 bolt
本文向大家介绍CentOS8下的Docker使用详解,包括了CentOS8下的Docker使用详解的使用技巧和注意事项,需要的朋友参考一下 一、CentOS8下Docker的安装 二、CentOS8下Docker的启动与停止 三、镜像加速器配置 1. 访问阿里云 https://www.aliyun.com/ 2. 配置镜像加速地址 进入控制台 查看配置的镜像加速地址 查看Registry Mir