【Docker】容器集群服务快速编排compose基本用法

compose基本用法

一、下载 安装 卸载

官网下载地址(on Linux):https://docs.docker.com/compose/install/standalone/
官网文档介绍地址:https://docs.docker.com/compose/compose-file/compose-file-v3/

# 下载安装
curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

# 直接运行失败,需要创建命令软连接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 为命令添加执行权限
chmod +x /usr/local/bin/docker-compose

# 查看版本,检验是否安装成功
docker-compose --version
# Docker Compose version v2.24.5 表示成功安装

# 卸载软件
sudo rm / usr/local/bin/docker-compose

二、核心理念

通过一个文件 docker-compose.yml,定义服务和项目。其中
服务(service):一个个应用容器实例,比如订单微服务、库存微服务、mysql容器等等
项目(project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义。

操作步骤:
第一步:编写Dockerfile定义各个微服务应用,并构建出对应的镜像文件;
第二步:使用docker-compose.yml定义一个完整业务单元,安排好整体应用中的各个容器服务;
第三步:最后,执行docker-compose up命令,来启动并运行整个应用程序,完成一键部署上线;

docker-compose up 等价于 一次性运行了多个docker run 容器 命令。

三、常用命令

docker-compose -h
#查看帮助

docker-compose up
#启动所有docker-compose服务

docker-compose up -d
#启动所有docker-compose服务并后台运行

docker-compose down
#停止并删除容器、网络、卷、镜像。

docker-compose exec yml里面的服务id
#进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash

docker-compose ps
#展示当前docker-compose编排过的运行的所有容器

docker-compose top
#展示当前docker-compose编排过的容器进程

docker-compose logs yml里面的服务id   
#查看容器输出日志

dokcer-compose config
#检查配置

dokcer-compose config -q
# 检查配置,有问题才有输出

docker-compose restart
#重启服务

docker-compose start
#启动服务
docker-compose stop
#停止服务

四、编排微服务(示例)

version: "2.0.1"
services:
	VollService:
		image: zzyy_docker : 1.6
		container_name: ms01
		ports:
			- "6001:6001"
		volumes:
			- / app/microService:/data
		networks:
			- atguigu_net
		depends_on:
			- redis
			- mysql
	redis:
		image:redis:6.0.8
		ports:
			- "6379:6379"
		volumes:
			- /app/redis/redis.conf:/etc/redis/redis.conf
			- /app/redis/data:/data
		networks :
			- my_network
		command: redis-server /etc/redis/redis.conf

	mysql:
		image:mysql:5.7
		environment:
			MYSQL_ROOT_PASSWORD: '123456'
			MYsQL_ALLOw_EMPTY_PASSWORD: 'no'
			MYSQL_DATABASE: 'db2024'
			MYSQL_USER: 'admin'
			MYSQL_PASSWORD: 'admin123'
		ports :
			-"3306:3306"
		volumes:
			- /app/mysql/db:/var/lib/mysql
			- /app/mysql/conf/my.cnf:/etc/my.cnf
			- /app/mysql/init:/docker-entrypoint-initdb.d
		networks :
			- atguigu_net
		command: --default-authentication-plugin=mysql_native_password  #解决外部无法访问
networks:
	atguigu_net:



你可能感兴趣的:(Docker,docker,容器,运维)