docker compose详细使用教程

这篇具有很好参考价值的文章主要介绍了docker compose详细使用教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Compose介绍

安装插件

docker-compose常用命令

Docker-Compose模板文件

实践操作


Compose介绍

docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。 
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

安装插件

yum update
yum install docker-compose-plugin

# 安装完成后查看版本号
docker compose version

docker-compose常用命令

# 查看配置命令
$ docker compose config

# 构建并后台启动
$ docker compose up -d

# 将会停止UP命令启动的容器,并删除容器
$ docker compose down 

#重新启动nginx容器
$ docker compose restart 

# 启动已存在的容器命令
$ docker compose start

# 停止正在运行的容器命令
$ docker compose stop

#暂停容器
$ docker compose pause               
 
# 恢复容器
$ docker compose unpause

# 构建镜像
$ docker compose bulid

# 下载镜像
$ docker compose pull

# 删除容器
$ docker compose rm 

# 查看运行的镜像
$ docker compose ps

# 查看进程
$ docker compose top

# 查看服务日志输出
$ docker compose logs

Docker-Compose模板文件

Compose模板文件默认路径是当前目录下的docker-compose.yml,可以使用.yml或.yaml作为文件扩展名。 Docker-Compose标准模板文件应该包含version、services、networks 三大部分,最关键的是services和networks两个部分。

image
image是指定服务的镜像名称或镜像ID

services: 
    web: 
        image: hello-world 

build
利用Dockerfile自动构建镜像,然后使用镜像启动服务容器。

build:
  context: ../
  dockerfile: path/of/Dockerfile 

command
使用command可以覆盖容器启动后默认执行的命令。

command: bundle exec thin -p 3000

container_name
指定自定义容器名称

container_name: app

depends_on
表示服务之间的依赖关系。

version: "3"
services:
  web:
    build: .
    depends_on:
      - redis
  redis:
    image: redis

#docker compose up:按依赖顺序启动服务,redis在web之前启动。
#docker-compose stop:按依赖顺序停止服务,web在redis之前停止。

pid
将PID模式设置为主机PID模式,跟主机系统共享进程命名空间。

pid: "host"

ports
映射端口

ports:
 - "8000"
 - "49022:22"
 - "127.0.0.1:8001:8001"

extra_hosts
添加主机名映射。使用与docker客户端–add-host类似

extra_hosts:
 - "somehost:162.242.195.82"
 - "otherhost:50.31.209.229"

volumes
目录映射,可以直接使用 [主机:容器]格式,或者使用[主机:容器:ro]格式,后者对于容器来说,数据卷是只读的,可以有效保护宿主机的文件系统。

volumes:
  # 只指定一个路径,Docker会自动在创建一个目录。
  - /var/lib/mysql
  # 主机使用绝对路径和容器目录映射
  - /opt/data:/var/lib/mysql
  # 以Compose配置文件的目录为中心的相对路径和容器目录映射
  - ./cache:/tmp/cache
  # 使用用户的相对路径(~/ 表示的目录是 /home/<用户目录>/ 或者 /root/)。
  - ~/configs:/etc/configs/:ro

dns
自定义DNS服务器。

dns:8.8.8.8
dns:
    - 8.8.8.8    
    - 9.9.9.9

dns_search
配置DNS搜索域。

dns_search:example.com
dns_search:
    - domain1.example.com
    - domain2.example.com

entrypoint
设置入口命令

entrypoint: /code/entrypoint.sh
entrypoint: ["php", "-d", "memory_limit=-1", "vendor/bin/phpunit"]
entrypoint: java -jar penngo_test.jar

env_file
从文件添加环境变量

env_file: .env
env_file:
  - ./common.env
  - ./apps/web.env
  - /opt/runtime_opts.env

environment
添加环境变量。

environment:
  RACK_ENV: development
  SHOW: 'true'
  SESSION_SECRET:

environment:
  - RACK_ENV=development
  - SHOW=true
  - SESSION_SECRET

external_links
链接到docker-compose.yml外部的容器

external_links:
  - redis_1
  - project_db_1:mysql
  - project_db_1:postgresql

cap_add
增加指定容器的内核能力(capacity)。

cap_add:
    - ALL

cap_drop
去掉指定容器的内核能力(capacity)。

cap_drop:
    - NET_ADMIN

cgroup_parent
创建了一个cgroup组名称为cgroups_1:

cgroup_parent: cgroups_1

devices
指定设备映射关系

devices:
    - "/dev/ttyUSB1:/dev/ttyUSB0" 

expose
暴露端口,但不映射到宿主机,只允许能被连接的服务访问。

expose:
    - "3000"
    - "8000" 

labels
为容器添加Docker元数据(metadata)信息。

labels:
- "com.example.description=Accounting webapp"
- "com.example.department=Finance"
- "com.example.label-with-empty-value"

links
链接到其它服务中的容器

links:
    - db
    - db:database
    - redis

log_driver
指定日志驱动类型。目前支持三种日志驱动类型:

log_driver: "json-file"
log_driver: "syslog"
log_driver: "none" 

log_opt
日志驱动的相关参数。

net
设置网络模式。

net: "bridge"
net: "none"
net: "host"

实践操作

  • docker-compose.yml文件
version: "3"
services:
  mysql:
    image: mysql:latest
    container_name: mysql_slaver11
    restart: always
    privileged: true
    ports:
      - 3307:3306
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      TZ: Asia/Shanghai
    volumes:
      - /wuming/mysql/slaver11/data:/var/lib/mysql
      - /wuming/mysql/slaver11/log:/var/log/mysql
      - /wuming/mysql/slaver11/conf/my.cnf:/etc/mysql/my.cnf
  mycat:
    image: manondidi/mycat:latest
    container_name: mycat
    restart: always
    ports:
      - 8066:8066
    volumes:
      - /wuming/mycat/conf:/usr/local/mycat/conf
      - /wuming/mycat/logs:/usr/local/mycat/logs
  redis:
    image: redis:latest
    container_name: redis_master
    
  • 端口测试
netstat -npl | grep 3306
netstat -npl | grep 3307
netstat -npl | grep 8066
  • 构建并后台启动

进入docker-compose对应的文件目录下,执行以下命令

# 对应目录下运行docker-compose文件
docker compose up -d

docker compose详细使用教程

  • 测试端口是否可以访问以及容器是否启动
# 安装telnet
yum -y install telnet
# 查看对方端口是否开
telnet  192.168.10.143 3307
docker ps

docker compose详细使用教程文章来源地址https://www.toymoban.com/news/detail-488275.html

到了这里,关于docker compose详细使用教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 五、Docker Compose下载安装及使用教程

    参考菜鸟教程 Docker Compose 是Docker的组装工具,用于创建和调试多个Docker容器,并在同一个Docker主机上运行它们。Docker Compose基于YAML文件,描述多个容器之间的相互关系,以及每个容器所需要的配置和环境变量。 Docker Compose 可以 简化多个容器的部署,还支持多个容器之间的数

    2024年02月05日
    浏览(33)
  • docker部署(使用docker-compose)手把手教程

    docker-compose.yml 文件内容  安装成功后,运行 docker ps 出现如下报错  表示未启动docker,运行下列语句即可 安装完成后,运行 赋予权限即可 在服务器上单独新建文件夹名为ruoyi-admin dockerfile文件如下  执行如下命令 这就构建出本地的镜像了。   依次再构建出ruoyi/ruoyi-xxl-job-adm

    2024年02月01日
    浏览(42)
  • docker compose 搭建ES集群的详细步骤,并去掉验证,使用http访问

    要使用 Docker Compose 搭建一个 Elasticsearch 集群,并配置为不使用验证,同时使用 HTTP 访问,你可以遵循以下步骤: 步骤 1: 安装 Docker 和 Docker Compose 确保你的系统上已安装 Docker 和 Docker Compose。如果尚未安装,请访问 Docker 的官方网站进行安装。 步骤 2: 创建 Docker Compose 配置文件

    2024年02月02日
    浏览(43)
  • Docker Compose介绍及部署

    Docker Compose 项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker. Compose 项目由Python 编写,调用Docker 服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose 来进行编排管理。 Docker Compose 是一个用于定义和运行多容

    2024年02月05日
    浏览(40)
  • 十二、Docker Compose 介绍与安装

    学习参考:尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出) 在使用k8s之前,随着容器数量的增加,如何对容器进行管理是一件重要的事情。例如容器之间的启动顺序管理、容器之间的网络调用管理等等。实际的开发环境和生产环境可不只是向我们刚

    2024年02月13日
    浏览(40)
  • docker compose各参数配置简单介绍

    docker compose简介 Docker Compose 是一个用于定义和运行多个 Docker 容器的工具,通过使用简单的 YAML 文件来配置应用程序的服务、网络和卷等。 使用 Docker Compose 可以方便地定义和管理容器化应用程序的服务栈。在配置文件中,你可以指定各个服务所需的镜像、环境变量、端口映射

    2024年02月07日
    浏览(36)
  • 【docker】dcoker-compose介绍

    我们知道使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。下面介绍Docker官方产品,Docker Compose。 Dockerfile可以让用户管理一个单独的应用容器,而compose则允许用户在一个模板(yaml格式)中定义一组相关联的应用容器(被称为一

    2023年04月20日
    浏览(37)
  • docker compose部署MongoDB教程

    在本教程中,我们将使用Docker Compose来部署MongoDB数据库,包括配置时区、数据库名、端口、用户密码等信息,同时挂载数据、日志、配置文件等相关路径到宿主机,以方便管理。 首先需要在目标机器上安装Docker和Docker Compose。如果你已经安装过了,可以跳过这一步。 请参考

    2024年02月16日
    浏览(36)
  • 【Docker】Docker Compose,yml 配置指令参考的详细讲解

    作者简介: 辭七七,目前大二,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 在现代软件开发中,应用程序的部署和管理是一个复杂而关键的任务。Docker Compose是一个强大的工具,可以简化多

    2024年02月05日
    浏览(34)
  • Docker Compose-简单安装与卸载教程

    Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 Compose 支持 Linux、macOS、Windows 三大平台。 Docker Desktop for Mac/Windows 自带 compose ,安装

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包