美文网首页
16、DockerComprose-常用命令与指令

16、DockerComprose-常用命令与指令

作者: 唯老 | 来源:发表于2019-09-14 22:00 被阅读0次

一、概要

默认的模板文件是 docker-compose.yml,其中定义的每个服务可以通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。
注意如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中再次设置。如果设置了会被YML覆盖

常用的docker-compose命令

命令 描述
docker-compose up -d 构建建启动容器
docker-compose exec bash 登录到容器中
docker-compose down 删除所有容器,镜像
docker-compose ps 显示所有容器
docker-compose restart 重新启动容器
docker-compose run --no-deps --rm php-fpm php -v 在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
docker-compose build 构建镜像
docker-compose build --no-cache 不带缓存的构建
docker-compose logs 查看的日志
docker-compose logs -f 验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息
docker-compose pause 暂停容器
docker-compose unpause 恢复容器
docker-compose rm 删除容器(删除前必须关闭容器)
docker-compose stop 停止容器
docker-compose start 启动容器

二、image

说明

指定为镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉去这个镜像。

栗子

image: ubuntu
image: mysql:5.7.22

三、build

说明

指定 Dockerfile 所在文件夹的路径。 Compose 将会利用它自动构建这个镜像,然后使用这个镜像。

栗子

build: ./
build: ./web/

四、command

说明

覆盖容器启动后默认执行的命令。

栗子

command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1

五、links

说明

链接到其它服务中的容器。使用服务名称(同时作为别名)或服务名称:服务别名 (SERVICE:ALIAS) 格式都可以。

栗子

links:
 - mysql
 - db:database
 - redis

使用的别名将会自动在服务容器中的 /etc/hosts 里创建。例如:

172.17.2.111  db
172.17.2.112  database
172.17.2.113  redis

六、external_links

说明

链接到 docker-compose.yml 外部的容器,甚至 并非 Compose 管理的容器。参数格式跟 links 类似。

栗子

external_links:
 - redis
 - web_db_mysql:mysql
 - web_db_oracle:oracle
 - web_db_oracle:postgre

七、ports

说明

暴露端口信息。使用宿主:容器 (HOST:CONTAINER)格式或者仅仅指定容器的端口(宿主将会随机选择端口)都可以。

栗子

ports:
 - "6379"
 - "8000:8000"
 - "46200:22"
 - "127.0.0.1:8080:8080"

注:当使用 HOST:CONTAINER 格式来映射端口时,如果你使用的容器端口小于 60 你可能会得到错误得结果,因为 YAML 将会解析 xx:yy 这种数字格式为 60 进制。所以建议采用字符串格式。

八、expose

说明

暴露端口,但不映射到宿主机,只被连接的服务访问。可以指定内部端口为参数

栗子

expose:
 - "3307"
 - "6380"

九、volumes

说明

卷挂载路径设置。可以设置宿主机路径 (HOST:CONTAINER) 或加上访问模式 (HOST:CONTAINER:ro 或者rw)。

volumes:
 - ./mysql/data:/var/lib/mysql
 - ./configs:/etc/configs/:ro

十、volumes_from

说明

从另一个服务或容器挂载它的所有卷。

栗子

volumes_from:
 - service_name
 - container_name

十一、environment

说明

设置环境变量。只给定名称的变量会自动获取它在 Compose 主机上的值,可以用来防止泄露不必要的数据。

栗子

environment:
      MYSQL_ROOT_PASSWORD: root
      TZ: Asia/Shanghai

十二、networks

说明

用于设置指定网络,子标签aliases用于设置服务别名,相同的别名可以在不同的网络中拥有不同的别名。
可以在service中使用,也可以在顶级标签中使用
更详细的查看专题介绍

栗子

services:
  some-service:
    networks:
      some-network:
        aliases:
         - alias1
         - alias3
      other-network:
        aliases:
         - alias2
networks:
   default:
    external:
      name: app

相关文章

  • 16、DockerComprose-常用命令与指令

    一、概要 默认的模板文件是 docker-compose.yml,其中定义的每个服务可以通过 image 指令指定...

  • 容器的知识介绍

    什么是容器? 容器的优势? 镜像常用命令: 容器常用命令: docker run参数 dockerfile指令:

  • Docker使用简介(一)Docker的安装及常用命令

    目录一、概述二、Docker的安装三、Docker的的常用命令 3.1 镜像常用指令练习 3.2 容器常用指令练习...

  • Docker镜像管理

    镜像是什么 镜像从哪里来 镜像存储位置 镜像与容器联系 管理镜像常用命令 指令描述ls列出镜像docker ima...

  • LLDB调试的实际应用

    一、常用命令 1. 打印(print) p指令可打印其对象类型、内存地址以及该对象的值等具体信息, po指令则是打...

  • vue 3.0

    基本指令 vue -V 查看版本 vue -h 查看常用命令 生成项目 npm install -g @vue/c...

  • 常用Git命令

    Git常用指令速查图 Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状...

  • ARM的汇编指令

    16位数据操作指令名字 功能ADC 带进位加法(ADD with Carry)ADD 加法AND 按位与。这...

  • Linux——Day3高级指令

    Linux命令大全(手册)_Linux常用命令行实例详解_Linux命令学习手册 1、hostname指令 2、i...

  • Shell学习之路-(07-其他常用命令)

    常用命令的使用 常用命令的使用有很多,而且其用法也是琳琅满目,这边只列出自己经常用的一些指令,如果想看跟详细的使用...

网友评论

      本文标题:16、DockerComprose-常用命令与指令

      本文链接:https://www.haomeiwen.com/subject/huaayctx.html