UOS安装Docker Compose 及简单使用

docker-compose介绍

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。这里使用pip3来安装docker-compose

安装

安装docker

UOS安装Docker及简单使用

安装docker-compose

pip3 install docker-compose

在这里插入图片描述

查看版本

sudo docker-compose -version

在这里插入图片描述

docker-compose文件

docker-compose.yml

version: '3'
services:
  linux01:
    build: ./
    image: chenchongbiao/myubuntu:v1
    working_dir: /usr/local/bash
    container_name: linux01
    hostname: linux01
    volumes:
      - ./linux01/bash:/usr/local/bash 
    ports:
      - "8022:22"
    restart: always

常用服务配置

build

build 可以指定包含构建上下文的路径:

    version: '3'
    services:
      webapp:
        build: ./

build指明Dockerfile文件的路径

image

指定启动容器的镜像,可以是镜像仓库/标签或者镜像id(或者id的前一部分)

image: redis
image: ubuntu:20.04
image: bluesky/ubuntu
image: example-registry.com:4000/postgresql
image: a4bc65fd

如果镜像不存在,Compose将尝试从官方镜像仓库将其pull下来,如果你还指定了build,在这种情况下,它将使用指定的build选项构建它,并使用image指定的名字和标记对其进行标记。

container_name

指定一个自定义容器名称,而不是生成的默认名称。

container_name: my-container

由于Docker容器名称必须是唯一的,因此如果指定了自定义名称,则无法将服务扩展到多个容器。

volumes

卷挂载路径设置。可以设置宿主机路径 (HOST:CONTAINER) 或加上访问模式 (HOST:CONTAINER:ro),挂载数据卷的默认权限是读写(rw),可以通过ro指定为只读。
你可以在主机上挂载相对路径,该路径将相对于当前正在使用的Compose配置文件的目录进行扩展。 相对路径应始终以 . 或者 … 开始。

volumes:
  # 只需指定一个路径,让引擎创建一个卷
  - /var/lib/mysql
 
  # 指定绝对路径映射
  - /opt/data:/var/lib/mysql
 
  # 相对于当前compose文件的相对路径
  - ./cache:/tmp/cache
 
  # 用户家目录相对路径
  - ~/configs:/etc/configs/:ro
 
  # 命名卷
  - datavolume:/var/lib/mysql

command

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

command: /usr/sbin/sshd -D

该命令也可以是一个类似于dockerfile的列表:

command: ["/usr/sbin/sshd","-D"]

links

链接到另一个服务中的容器。 请指定服务名称和链接别名(SERVICE:ALIAS),或者仅指定服务名称。

linux01:
  links:
	- linux02
	- redis

链接不需要启用服务进行通信 - 默认情况下,任何服务都可以以该服务的名称到达任何其他服务。
links也可以起到和depends_on相似的功能,即定义服务之间的依赖关系,从而确定服务启动的顺序。

expose

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

expose:
 - "3000"
 - "8000"

ports

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

ports:
 - "3000"
 - "3000-3005"
 - "8000:8000"
 - "9090-9091:8080-8081"
 - "8022:22"
 - "127.0.0.1:8001:8001"
 - "127.0.0.1:5000-5010:5000-5010"
 - "6060:6060/udp"

restart

no是默认的重启策略,在任何情况下都不会重启容器。 指定为always时,容器总是重新启动。 如果退出代码指示出现故障错误,则on-failure将重新启动容器。
unless-stopped如果容器正常stopped,然后机器重启或docker服务重启,这种情况下容器将不会被restart

restart: "no"
restart: always
restart: on-failure
restart: unless-stopped

environment

添加环境变量。 你可以使用数组或字典两种形式。 任何布尔值; true,false,yes,no需要用引号括起来,以确保它们不被YML解析器转换为True或False。
只给定名称的变量会自动获取它在 Compose 主机上的值,可以用来防止泄露不必要的数据。

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

如果服务指定了build选项,那么在构建过程中通过environment定义的环境变量将不会起作用。 将使用build的args子选项来定义构建时的环境变量。

教程

菜鸟教程docker-compose
【狂神说Java】Docker进阶篇超详细版教程通俗易懂

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值