Docker Compose
的作用是简化和管理一个或多个 Docker
容器的应用程序的开发、部署和管理过程。它可以让开发者通过一个简单的配置文件来定义整个应用程序的环境,包括服务之间的依赖关系、容器的配置选项以及网络设置等,然后使用一条命令就可以轻松地启动、停止、重新启动或销毁整个应用程序。
PS:想要更简单的使用docker,docker-compose是一个最基础的工具。
官方文档:Install the Compose
运行下方命令一键安装:
sh# 注意版本号,可以前往官方文档查看最新版本。
curl -SL https://github.com/docker/compose/releases/download/v2.17.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
安装完成后,如果使用 docker-compose
报错:-bash: /usr/local/bin/docker-compose: Permission denied
,则需要给docker-compose
授权:
shchmod +x /usr/local/bin/docker-compose
shellsudo pip install docker-compose
shellsudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
shellsudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
shellsudo chmod +x /usr/local/bin/docker-compose
docker-compose
的最基础原理,可以认为是将 docker run
命令的相关参数持久化,当运行 docker-compose
指令时,会自动根据持久化的配置内容生成并运行 docker run
命令。
PS:多个容器编排为高级用法。
使用 docker-compose
指令前,需要编写相应的 yaml
配置文件。可以命名为 docker-compose.yaml
或 docker-compose.yml
。下面是一个简单的内容示例:
yamlversion: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: example
重点:docker-compose
指令执行时,请保证处在待执行配置文件目录中。
bash# 前台运行,首次运行将会自动下载相应镜像资源
docker-compose up
# 后台运行
# docker-compose up -d
bashdocker-compose stop
bashdocker-compose restart
bash# 停止相应容器并自动删除
docker-compose down
镜像需要手动删除,就是 Dokcer
基础操作,没有新方式。
yamlversion: '3.8' # 使用的 Docker Compose 版本号
services: # 定义服务
# Web 应用服务
web:
image: nginx:latest # 使用的 Docker 镜像
ports: # 端口映射
- "80:80" # 将容器的 80 端口映射到宿主机的 80 端口
volumes: # 挂载卷
- ./web:/usr/share/nginx/html # 将宿主机的 ./web 目录挂载到容器的 /usr/share/nginx/html 目录,用于存放静态文件
networks: # 定义网络
- app-network # 与名为 app-network 的网络进行连接
# 数据库服务
db:
image: mysql:latest # 使用的 Docker 镜像
environment: # 环境变量
MYSQL_ROOT_PASSWORD: example # 设置 MySQL 的 root 密码为 example
volumes: # 挂载卷
- mysql-data:/var/lib/mysql # 将 mysql-data 卷挂载到容器的 /var/lib/mysql 目录,用于持久化存储数据库数据
networks: # 定义网络
- app-network # 与名为 app-network 的网络进行连接
depends_on: # 依赖关系
- db # web 服务依赖于 db 服务
volumes: # 定义卷
mysql-data: # 定义名为 mysql-data 的卷,用于持久化存储数据库数据
networks: # 定义网络
app-network: # 定义名为 app-network 的网络
建站因为热爱,生活需要Money,请屏幕前的大佬动动您发财的小手,点击一次以示鼓励,祝您生活愉快!
PS:就目前的访问量,即便每个访客都点一次广告,收入也不足以支付运营成本。
如果看不到广告,可能是网络原因或被拦截了,那就算了吧。再次祝您生活愉快~~
本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!