博客博客
  • 介绍
  • 链表反转
  • 排序算法
  • 二叉树

    • 介绍
    • 深度算法
  • 加密算法

    • 非对称加密
    • 摘要算法
    • 对称加密
  • 激活Windows 11
  • ASP.NET Core 健康检查
  • 获取程序集根目录
  • 闭包
  • CSS 单位指南:CSS em、rem、vh、vw 等详解
  • 自定义Code First约定
  • .NET安装本地化的智能提示
  • 免费开通域名企业邮箱
  • GRPC
  • Hexo生成github page
  • .Net Core日志管理之Log4net
  • linux下更新jenkins
  • MySQL的四种事务隔离级别
  • 发布NuGet包
  • rimraf命令
  • Ubuntu基础操作
  • Ubuntu安装jenkins
  • Vscode无法执行npm等脚本的问题
  • Json

    • Countries
  • 简介
  • 设计原则
  • 行为型模式

    • 介绍
    • 策略模式
  • 创建型模式

    • 介绍
    • 单例模式
  • 结构型模式

    • 介绍
  • Docker指南

    • 介绍
    • 安装
  • Docker实例

    • 介绍
    • docker安装consul
    • docker安装elasticsearch
    • docker安装gitlab-runner
    • docker安装gitlab
    • docker安装jenkins
    • docker安装kafka
    • docker安装mongo
    • docker安装mysql
    • docker安装nginx
    • docker安装portainer
    • docker安装rabbitmq
    • docker安装redis
    • docker安装teamcity
  • Docker教程

    • Docker命令大全
    • docker nginx添加端口映射
    • docker服务管理
  • Docker-Compose

    • 网络配置
    • service name和container name
  • 世界上的另一个我
  • 计划生育宣传标语
  • IT术语
  • Single is simple, double is trouble
  • 矿泉水、纯净水、天然水究竟有啥区别
  • 联系
  • 捐赠
GitHub
  • 介绍
  • 链表反转
  • 排序算法
  • 二叉树

    • 介绍
    • 深度算法
  • 加密算法

    • 非对称加密
    • 摘要算法
    • 对称加密
  • 激活Windows 11
  • ASP.NET Core 健康检查
  • 获取程序集根目录
  • 闭包
  • CSS 单位指南:CSS em、rem、vh、vw 等详解
  • 自定义Code First约定
  • .NET安装本地化的智能提示
  • 免费开通域名企业邮箱
  • GRPC
  • Hexo生成github page
  • .Net Core日志管理之Log4net
  • linux下更新jenkins
  • MySQL的四种事务隔离级别
  • 发布NuGet包
  • rimraf命令
  • Ubuntu基础操作
  • Ubuntu安装jenkins
  • Vscode无法执行npm等脚本的问题
  • Json

    • Countries
  • 简介
  • 设计原则
  • 行为型模式

    • 介绍
    • 策略模式
  • 创建型模式

    • 介绍
    • 单例模式
  • 结构型模式

    • 介绍
  • Docker指南

    • 介绍
    • 安装
  • Docker实例

    • 介绍
    • docker安装consul
    • docker安装elasticsearch
    • docker安装gitlab-runner
    • docker安装gitlab
    • docker安装jenkins
    • docker安装kafka
    • docker安装mongo
    • docker安装mysql
    • docker安装nginx
    • docker安装portainer
    • docker安装rabbitmq
    • docker安装redis
    • docker安装teamcity
  • Docker教程

    • Docker命令大全
    • docker nginx添加端口映射
    • docker服务管理
  • Docker-Compose

    • 网络配置
    • service name和container name
  • 世界上的另一个我
  • 计划生育宣传标语
  • IT术语
  • Single is simple, double is trouble
  • 矿泉水、纯净水、天然水究竟有啥区别
  • 联系
  • 捐赠
GitHub
  • Docker指南

    • 介绍
    • 安装
  • Docker实例

    • 介绍
    • docker安装consul
    • docker安装elasticsearch
    • docker安装gitlab-runner
    • docker安装gitlab
    • docker安装jenkins
    • docker安装kafka
    • docker安装mongo
    • docker安装mysql
    • docker安装nginx
    • docker安装portainer
    • docker安装rabbitmq
    • docker安装redis
    • docker安装teamcity
  • Docker教程

    • Docker命令大全
    • docker nginx添加端口映射
    • docker服务管理
  • Docker-Compose

    • 网络配置
    • service name和container name

service name和container name

我们在定义docker-compose.yml文件里面经常会有service name和container name,这两者有什么区别呢?

基本概念

  1. 一个service可以拥有一个或多个container
  2. container是docker的概念,因此我们在docker域里面,处理的是container
  3. service是docker-compose概念, 因此我们在docker-compose域里面,才处理的是service(当然docker-compose也能处理container)
  • 同时定义service name和container name

    version: '2'
    
    services:
      nginxservice:
        image: nginx
        container_name: nginx
    
    $ docker-compose up
    
    $ docker ps
    CONTAINER ID   IMAGE   COMMAND                  CREATED          STATUS         PORTS    NAMES
    de5ce2bcf891   nginx   "/docker-entrypoint.…"   53 seconds ago   Up 5 seconds   80/tcp   nginx
    
    
    $ docker-compose stop nginxservice
    Stopping nginx ... done
    
    $ docker-compose start nginxservice
    Starting nginx ... done
    
    $ docker-compose stop nginx
    ERROR: No such service: nginx
    
    $ docker-compose start nginx
    ERROR: No such service: nginx
    

    可以看到docker-compose start/stop处理的service name,而不是container name

  • 只定义service name

    version: '2'
    
    services:
      nginxservice:
        image: nginx
    
    $ docker-compose up
    
    $ docker ps
    CONTAINER ID   IMAGE   COMMAND                  CREATED          STATUS         PORTS    NAMES
    de5ce2bcf891   nginx   "/docker-entrypoint.…"   53 seconds ago   Up 5 seconds   80/tcp   srv_nginxservice_1
    

    运行起来后可以看到docker-compose自动给container分配了一个名字

    其格式为:<当前工作路径名>_<servicename>_<sequencenumber>

    sequencenumber是干什么用的呢,我们看后面的例子

  • 定义多个container name

    我们一次启动5个linuxservice containers:

    docker-compose up --scale nginxservice=5
    Creating network "srv_default" with the default driver
    Creating srv_nginxservice_1 ...
    Creating srv_nginxservice_2 ...
    Creating srv_nginxservice_3 ...
    Creating srv_nginxservice_4 ...
    Creating srv_nginxservice_5 ...
    Creating srv_nginxservice_1 ... done
    Creating srv_nginxservice_2 ... done
    Creating srv_nginxservice_3 ... done
    Creating srv_nginxservice_4 ... done
    Creating srv_nginxservice_5 ... done
    Attaching to srv_nginxservice_3, srv_nginxservice_2, srv_nginxservice_4, srv_nginxservice_1, srv_nginxservice_5
    
    
    $ docker ps
    CONTAINER ID   IMAGE   COMMAND                  CREATED          STATUS         PORTS    NAMES
    de5ce2bcf891   nginx   "/docker-entrypoint.…"   53 seconds ago   Up 5 seconds   80/tcp   srv_nginxservice_1
    c1371a78d7f9   nginx   "/docker-entrypoint.…"   53 seconds ago   Up 5 seconds   80/tcp   srv_nginxservice_2
    7a8e2954b267   nginx   "/docker-entrypoint.…"   53 seconds ago   Up 5 seconds   80/tcp   srv_nginxservice_3
    f31f0c18d169   nginx   "/docker-entrypoint.…"   53 seconds ago   Up 5 seconds   80/tcp   srv_nginxservice_4
    6fc546cb5a3d   nginx   "/docker-entrypoint.…"   53 seconds ago   Up 5 seconds   80/tcp   srv_nginxservice_5
    

    这个例子中我们看到service有5个container被创建出来,每一container的sequence是从1开始累加。

    注意

    docker-compose stop/start会对5个container一起操作

Prev
网络配置