欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > docker 常用容器启动 docker-compose.yml 配置文件详解

docker 常用容器启动 docker-compose.yml 配置文件详解

2025/3/10 3:56:38 来源:https://blog.csdn.net/qq_36833673/article/details/146042674  浏览:    关键词:docker 常用容器启动 docker-compose.yml 配置文件详解

        在平常的开发工作中,我们经常需要部署项目。项目开发完成后,部署测试环境、部署生产环境等。以前部署项目,在服务器上安装项目所需的软件,如 nginx、redis 等。可能在测试环境测试没有问题,由于环境配置等不同,部署到生产环境又会产生莫名奇怪的问题。随着 docker 容器的出现,我们可以用 Dockerfile 构建镜像,构建完成后运行,这样可以保证每个地方使用的镜像一致,然后启动使用 docker-compose.yml 文件,保证容器的配置一致。今天总结下常用软件启动的 docker-compose.yml 文件。

      一:概述

        定义和运行多容器 Docker 应用的工具,可以在里面定义多个服务信息,定义每个服务的服务名、端口映射、环境变量、网络模式等。这样可以方便的管理启动命令,方便拓展。可以一次启动多个容器。常用于部署测试环境等。这样可以保证每个环境映射的端口、依赖的镜像等信息一致,减少因环境问题导致的差异。通过 docker-compose.yml 文件,可以确保开发、测试和生产环境的一致性,避免“因部署不同机器存在差异”的问题。

     二:docker-compose.yml 示例

        1:后端服务

services:ruoyi-admin:image: ruoyi-admin:v1.0container_name : ruoyi-adminports:- "9016:9016"environment:- SERVER_PORT=9016- TZ=Asia/Shanghairestart: alwaysnetworks:- my_networknetworks:my_network:external: true

        2:mysql

services:mysql:image: mysql:8.0.33restart: alwayscontainer_name: mysqlenvironment:MYSQL_ROOT_PASSWORD: your_passwordTZ: Asia/Shanghaiports:- "3306:3306"volumes:- /docker/mysql/log:/var/log/mysql- /docker/mysql/data:/var/lib/mysql - /docker/mysql/conf:/etc/mysql/conf.dcommand:--max_connections=1000--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_general_ciprivileged: truenetwork_mode: "host"

        3:nginx

services:nginx:image: nginx:latestcontainer_name: nginx-webenvironment:TZ: Asia/Shanghaiports:- "80:80"- "443:443"volumes:# 配置文件映射- /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf- /docker/nginx/conf:/etc/nginx/conf# 页面目录- /docker/nginx/html:/usr/share/nginx/htmlprivileged: truenetwork_mode: "host"

        4:redis

services:redis:image: redis:6.2.6container_name: redis6.2.6## 设置持久化,允许远程访问,密码等command: redis-server --appendonly yes --bind 0.0.0.0 --requirepass your_passwordports:- 6379:6379volumes:# - ./data/:/data- /docker/redis/conf/redis.conf:/etc/redis/redis.conf - /docker/redis/data:/dataenvironment:- TZ=Asia/Shanghairestart: always# 获取宿主机 root 权限privileged: true# # 设置容器网络为本机网络network_mode: "host"

        5:nacos

nacos:image: nacos/nacos-server:v2.0.3container_name: nacosrestart: alwaysports:# web 界面访问端口- 8848:8848environment:- MODE=standalone# 连接 mysql 数据库,主要是为了配置的持久化- SPRING_DATASOURCE_PLATFORM=mysql # 定义使用的数据库是 mysql- MYSQL_SERVICE_HOST=mysql- MYSQL_SERVICE_PORT=3306- MYSQL_SERVICE_DB_NAME=nacos_dev- MYSQL_SERVICE_USER=root- MYSQL_SERVICE_PASSWORD=rootvolumes:- /docker/nacos/logs:/home/nacos/logs

        6:rabbitmq

rabbitmq:# 带有管理界面的 rabbitmq 镜像image: rabbitmq:management  container_name: rabbitmqports:# AMQP 协议端口- "5672:5672" # rabbitmq 管理界面端口 - "15672:15672"  volumes:# 数据持久化目录- /usr/local/docker/rabbitmq/data:/var/lib/rabbitmq# 日志目录- /usr/local/docker/rabbitmq/logs:/var/log/rabbitmq environment:# 设置用户名RABBITMQ_DEFAULT_USER: guest# 设置密码RABBITMQ_DEFAULT_PASS: 123456restart: always

     三:docker compose 常用命令

        (1):docker compose up -d:启动新的容器,会先拉取镜像等然后创建新的容器。带上 -d 是非阻塞的,不阻塞当前的命令窗口,不带 -d 是阻塞的,会阻塞当前的命令窗口。

        (2):docker compose down:停止所有运行中的容器

        (3):docker compose start:启动一个停止的容器

        (4):docker compose restart:重启容器

        (5):docker compose build:构建镜像

        (6):docker compose config:查看配置

        (7):docker compose logs:查看容器日志

        (8):docker compose exec service-name command:进入运行中的容器

     四:总结

        docker-compose.yml 可以更好的管理启动命令,这样可以保持测试环境、生产环境等端口,配置等一致性,防止项目部署因配置不同导致的问题。包括镜像来源、容器名称、端口映射、环境变量、数据卷挂载等。使用 docker run 启动,要输入很长的命令,而且容易出错。使用 docker-compose.yml 管理命令,启动方便快捷,也降低了配置出错的概率。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词