🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀
🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。
🌟🧭 在这里,每个错误都是成长的阶梯,每条建议都是前进的动力。
🌟🧭 在这里,我们一起成长,一起进步,让我们在知识的世界里畅游无阻,共同创造一个充满智慧和创新的明天。
🌟📚 点击关注,加入我们的技术探索之旅吧!❤️📖✨
✨博客主页:远见阁小民的主页
📕本文专栏:后端专栏
📕其他专栏:AI专栏 Python专栏 其他专栏 白帽学徒笔记
Linux专栏
1、简介
Docker Compose是一个用来定义和运行复杂应用的Docker工具。
一个使用Docker容器的应用,通常由多个容器组成。 使用Docker Compose不再需要使用shell脚本来启动容器。
Compose通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动、停止和重启应用,非常适合组合使用多个容器进行开发的场景。
2、Compose和Docker兼容性
安装docker和docker-compose方法将不在这里说明
docker-compose安装参考官方文档:Docker Compose官网 操作即可。
下面就如何使用docker-compose容器编排技术快速安装mysql和nginx做一下简单说明,新手可以作为入门学习模板参考使用。
3、编写docker-compose.yml文件
version: "3"
services:
mysql8:
image: mysql:8
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--lower_case_table_names=1
--sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
restart: always
privileged: true
environment:
- MYSQL_ROOT_HOST=%
- MYSQL_ROOT_PASSWORD=fenglm@123
- MYSQL_DATABASE=fenglmdb
- MYSQL_USER=fenglm
- MYSQL_PASSWORD=fenglm.123
ports:
- '3306:3306'
volumes:
- ./data/mysql:/var/lib/mysql
nginx:
restart: always
image: nginx
ports:
- 80:80
- 443:443
volumes:
- /opt/fenglm/nginx/html:/usr/share/nginx/html
- /opt/fenglm/nginx/www:/var/www
- /opt/fenglm/nginx/logs:/var/log/nginx
- /opt/fenglm/nginx/nginx.conf/:/etc/nginx/nginx.conf
- /opt/fenglm/nginx/etc/cert:/etc/nginx/cert
- /opt/fenglm/nginx/conf.d:/etc/nginx/conf.d
environment:
- NGINX_PORT=80
privileged: true
3.1 新建目录
服务器中新建目录/opt/fenglm/
3.2 拷贝docker-compose.yml文件
将编写好的docker-compose.yml文件拷贝到/opt/fenglm/目录下
3.3 执行命令
docker-compose up -d
3.4 设置别名方法如下
可以给docker-compose配置个别名如dc,这样命令就不用写那么长了
vim /root/.bashrc
3.5 加载配置,使其立即生效
source /root/.bashrc
3.6 这样命令就可以简写了,如下所示
dc up -d
3.7 查看安装结果
4、常用命令参考
4.1 查看nginx容器的全部打印日志
dc logs -f nginx
4.2 查看nginx容器最后100条的打印日志
dc logs -f --tail 100 nginx
4.3 其他命令参考
1. docker-compose up
用途: 创建并启动 docker-compose.yml 文件中定义的所有服务。
示例: docker-compose up
常用选项:
-d 或 --detach: 以后台模式运行容器。
--build: 在启动之前强制重新构建服务镜像。
--force-recreate: 强制重新创建容器,即使配置或镜像没有变化。
2. docker-compose down
用途: 停止并删除 docker-compose.yml 文件中定义的所有服务容器、网络和卷(除非有指定 -v 选项)。
示例: docker-compose down
常用选项:
-v 或 --volumes: 删除与服务相关的卷。
--rmi all: 删除所有服务的镜像。
3. docker-compose build
用途: 根据 docker-compose.yml 文件构建服务镜像。
示例: docker-compose build
常用选项:
--no-cache: 构建时不使用缓存。
--force-rm: 删除中间容器。
4. docker-compose start
用途: 启动已经存在但停止的容器。
示例: docker-compose start
5. docker-compose stop
用途: 停止运行中的服务容器。
示例: docker-compose stop
6. docker-compose restart
用途: 重新启动服务容器。
示例: docker-compose restart
7. docker-compose ps
用途: 列出当前项目中所有服务的容器状态。
示例: docker-compose ps
8. docker-compose logs
用途: 查看服务容器的日志。
示例: docker-compose logs
常用选项:
-f 或 --follow: 实时跟踪日志输出。
--tail NUMBER: 仅显示最后 NUMBER 行日志。
9. docker-compose exec
用途: 在运行的容器内执行命令。
示例: docker-compose exec web bash(在 web 服务容器中打开一个 bash 终端)
10. docker-compose run
用途: 运行一个一次性命令(临时容器),与 exec 不同的是它会创建一个新的容器来运行命令。
示例: docker-compose run web bash
常用选项:
--rm: 容器退出后自动删除。
11. docker-compose pull
用途: 拉取 docker-compose.yml 文件中定义的服务镜像。
示例: docker-compose pull
12. docker-compose config
用途: 校验和显示 Compose 文件的有效配置。
示例: docker-compose config
常用选项:
--services: 只列出服务名称。
--volumes: 只列出卷。
13. docker-compose scale
用途: 设置某个服务的容器副本数量。
示例: docker-compose scale web=3(将 web 服务的副本数量设置为 3)
注意: 在 Docker Compose v3 版本及更高版本中被弃用,推荐使用 docker-compose up --scale 选项代替。
14. docker-compose rm
用途: 删除停止的服务容器。
示例: docker-compose rm
常用选项:
-f 或 --force: 强制删除,不提示确认。
-v: 删除容器关联的卷。