ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker-Compose

2022-07-09 19:00:10  阅读:164  来源: 互联网

标签:容器 compose 服务 redis Compose Docker docker


Docker-Compose

官方文档:https://docs.docker.com/compose/

Docker-Compose 是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排

Compose 是一个用于定义和运行多个容器 Docker 应用程序的工具,使用 Compose,可以使用 YAML 格式的配置文件(docker-compose.yml)来配置应用程序的服务,写好多个容器之间的调用关系;然后,只要一个命令就能同时启动/关闭这些容器

安装 docker-compose

下载并安装 Compose CLI 插件

# 依次执行以下命令
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose

此命令下载最新版本的 Docker Compose(从 Compose 发布存储库)并在$HOME目录下为活动用户安装 Compose

对二进制文件应用可执行权限

 chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

或者,如果您选择为所有用户安装 Compose:

 sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

测试安装是否成功

docker compose version

卸载 docker-compose

如果您曾经curl安装 Compose CLI 插件,要卸载它,请运行:

rm $DOCKER_CONFIG/cli-plugins/docker-compose

或者,如果您为所有用户安装了 Compose,请运行:

 rm /usr/local/lib/docker/cli-plugins/docker-compose

您还可以使用:

docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}{{.Path}}{{end}}{{end}}'

检查 Compose CLI 插件的位置

docker-compose 使用步骤

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

docker-compose 常用命令

# 查看帮助
docker-compose -h
# 启动所有 docker-compose 服务
docker-compose up
# 后台启动所有 docker-compose 服务
docker-compose up -d
# 后台强制启动 docker-compose 中的某个服务
docker-compose up --force-recreate -d 服务名
# 停止并删除容器、网络、卷、镜像
docker-compose down
# 进入容器实例内部
docker-compose exec yml里面的服务id或服务名 /bin/bash
# 展示当前 docker-compose 编排过的运行的所有容器
docker-compose ps
# 展示当前 docker-compose 编排过的容器进程
docker-compose top
# 查看容器输出日志
docker-compose logs yml里面的服务id或服务名
# 检查配置
docker-compose config
# 检查配置,有问题才输出(启动 docker-compose 前可以通过该命令检查 yml 语法是否存在错误)
docker-compose config -q
# 重启服务(不写服务id或服务名则重启所有服务)
docker-compose restart 服务id或服务名
# 启动服务(不写服务id或服务名则启动所有服务)
docker-compose start 服务id或服务名
# 停止服务(不写服务id或服务名则停止所有服务)
docker-compose stop 服务id或服务名

docker-compose.yml 文件案例说明

# docker-compose 版本
version:"3"

services:
	# 服务名称
	microService:
		# 构建服务使用的镜像名
		image: boot-server:1.1
		# 容器名称(不写则自动生成)
		container_name: docker-compose-test
		# 端口映射
		ports:
			- "6001:6001"
		# 容器数据卷
		volumes:
			- /app/microService:/data
		# 服务所使用的网络模式
		networks:
			- net01
		# 依赖了哪些其他服务
		depends_on:
			- reids
			- mysql
			
	redis:
		image: redis:6.0.8
		ports:
			- "6379:6379"
		volumes:
			- /app/redis/redis.conf:/etc/redis/redis.conf
			- /app/redis/data:/data
		networks:
			- net01
		# 容器启动执行的命令
		command: redis-server /etc/redis/redis.conf
		
	mysql:
		image: mysql:5.7
		environment:
			MYSQL_ROOT_PASSWORD: '123456'
			MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
			MYSQL_DATABASE: 'db2021'
			MYSQL_USER: 'user'
			MYSQL_PASSWORD: '123'
		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:
			- net01
		# 解决外部无法访问
		command: --default-authentication-plugin=mysql_native_password
	
	# 网络配置
	networks:
		# 如果 net01 网络模式不存在则自动创建该网络
		net01:

标签:容器,compose,服务,redis,Compose,Docker,docker
来源: https://www.cnblogs.com/Y-wee/p/16461672.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有