Docker-Compose(三剑客之一)

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们在上一章,讲了虚拟化,虚拟化是把硬件虚拟化,然后创建出来的虚拟机完全隔离,而Docker则是软件(内核)虚拟化,他的隔离性会低于虚拟机。我们将通过3-4周来讲解Docker相关内容,由于涉及到内容较多,就不一一列出来具体的细节,主要从以下几个方面来讲解:

Docker基本情况

Docker基本命令

Dockerfile

Docker镜像

Docker仓库

Docker原理

Docker网络&存储&日志

Docker-Compose(本小节属于)

Docker番外篇

为什么明明在讲Docker的仓库,突然跳到Compose呢,因为我们要讲的仓库Harbor就是基于Compose来部署的,所以需要先了解这个Compose是怎么一回事。

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件来配置应用程序的服务,然后使用一个命令即可创建并启动所有服务。这对于需要多个相互关联的服务(如 Web 应用、数据库等)的应用程序来说非常有用。

我们在讲解Docker-详细信息和目录介绍的时候讲解过,从20.10版本的Docker开始就自动集成了Compose,唯一的区别就是命令的区别:

#旧版本
docker-compose xxx
# 新版本,以子命令方式呈现
docker compose xxx

下面就是我根据需求模拟出来的一个Compose范例:一个由3个容器组成的集合:包括一个nginx容器,取名为web;一个数据库容器,取名为mysql;还有一个操作系统容器,取名为centos。

version:指版本,目前最新的版本都是3,所以这里默认即可。

services:这里就是容器最核心部分,几乎就认为是必选,否则就没有容器。

web/mysql/centos:则是我们给容器取的名字,根据具体需求取名即可。

image:对应的镜像。

ports:对应的端口映射,前面是宿主机端口,后面是容器端口

working_dir: 对应工作目录。

restart:对应容器关闭以后是否自动拉起。

environment:环境变量,等效env参数。

command/tty: 前面2个容器都是自己的前台进程,而centos容器没有,所以通过这个方式来实现容器前台进程。

networks:如果没有这个选项,则使用docker默认的网络服务,如果在这里指定,则使用指定的网桥(如果多个应用都使用compose部署,则可以把他们的网络进行隔离),如果使用了指定的网络,则需要在services同级选项添加network选项。

图片

volume:将宿主机的目录挂到容器里面,这里有两种选项:一种就是直接挂载目录,参考web这个容器;另外一种就是使用docker的volume功能,参考mysql容器(如果是使用了这个,需要在service同级添加volume选项)。

图片

version: '3'
services:
  web:
    image: '192.168.31.43:5000/nginx:1.27.2'
    ports:
      - "8080:80"
    working_dir: /var/www/html
    volumes:
      - ./web:/var/www/html
    restart: always
    networks:
      - app-network
  mysql:
    image: '192.168.31.43:5000/mysql:5.7'
    environment:
      - MYSQL_ROOT_PASSWORD=my-secret-pw
    volumes:
      - mysql-data:/var/lib/mysql
    restart: always
    networks:
      - app-network
  centos:
    image: '192.168.31.43:5000/centos:7'
    command: "/bin/bash"
    tty: true
    working_dir: /app
    volumes:
      - ./centos-app:/app
    restart: always
    networks:
      - app-network
volumes:
  mysql-data:
networks:
  app-network:
    driver: bridge

常用命令

#前台启动
docker compose up

#后台启动
docker compose up -d

#停止
docker compose down

当然这里还有很多命令,我们并有讲,格式类似docker compose xxx,可以自己下去体验。

图片

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值