Docker-compose

------ ## 一:Docker-compose 概述 ​ Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。然后,使用一个命令,您可以从您的配置中创建并启动所有服务。 ​ Compose 适用于所有环境:生产、登台、开发、测试以及 CI 工作流程。 **使用 Compose 基本上是一个三步过程:** - 使用定义您的应用程序的环境,`Dockerfile`以便可以在任何地方复制它 - 定义构成您的应用程序的服务,`docker-compose.yml` 以便它们可以在隔离环境中一起运行 - 运行`docker compose up`,Docker compose 命令启动并运行您的整个应用程序 ## 二:Docker-compose 安装 ### 1. 下载 ```bash [root@docker ~]# curl -SL https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose ``` ### 2. 创建软连接 ```bash [root@docker ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose ``` ### 3. 添加执行权限 ```bash [root@docker ~]# chmod +x /usr/bin/docker-compose ``` ### 4. 查看版本 ```bash [root@docker ~]# docker-compose --version Docker Compose version v2.6.0 ``` ## 三:使用 ### 1. 创建项目目录结构 ```bash [root@docker ~]# mkdir nginx [root@docker ~]# cd nginx [root@docker nginx]# mkdir conf html ``` ### 2. 编写`Nginx`配置文件 ```bash [root@docker nginx]# vim conf/nginx.conf server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } } ``` ### 3. 创建静态文件 在`html/index.html`中写入测试内容: ```bash [root@docker nginx]# vim html/index.html Nginx in Docker

Hello from Docker + Nginx!

``` ### 4. 编写`docker-compose.yml` ```bash [root@docker nginx]# vim docker-compose.yml version: '3.8' services: nginx: image: nginx:latest container_name: nginx-v1 ports: - "80:80" volumes: - ./conf/nginx.conf:/etc/nginx/conf.d/default.conf - ./html:/usr/share/nginx/html restart: unless-stopped 参数说明: ports: 映射宿主机 80 端口到容器的 80 端口 restart: 容器意外退出时自动重启。 ``` ### 5. 启动服务 ```bash # 启动容器(后台运行) [root@docker nginx]# docker-compose up -d [+] Running 2/2 ⠿ Network nginx_default Created 0.1s ⠿ Container nginx-v1 Started 0.3s # 查看运行状态 [root@docker nginx]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f289f37ccc44 nginx:latest "/docker-entrypoint.…" 4 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp nginx-v1 # 查看日志 [root@docker nginx]# docker-compose logs nginx ``` ### 6. 验证 ```bash [root@docker nginx]# curl http://localhost Nginx in Docker

Hello from Docker + Nginx!

``` ### 7. 其他命令 ```bash [root@docker nginx]# docker-compose up -d //后台运行 [root@docker nginx]# docker-compose ps //列出容器 [root@docker nginx]# docker-compose pause //暂停服务 [root@docker nginx]# docker-compose unpause //取消暂停服务 [root@docker nginx]# docker-compose down //停止并移除容器、网络 [root@docker nginx]# docker-compose logs //查看容器的输出 [root@docker nginx]# docker-compose start //启动服务 [root@docker nginx]# docker-compose stop //停止服务 ```