掌握CentOS7环境下的Docker使用(七)Compose操作容器快速搭建个人博客
创始人
2025-06-01 03:59:17

文章目录

  • 什么是docker-compose?
  • 安装docker-compose工具
  • Docker-Compose的快速上手
  • Compose核心技能
    • 验证nginx
    • 验证redis
  • Docker-Compose搭建个人博客
    • 快速上手
    • docker-compose.yml分析

什么是docker-compose?

是一个用于定义和运行多容器 Docker的插件工具,可以帮助我们可以轻松、高效的管理容器

安装docker-compose工具

下载docker-compose地址:https://github.com/docker/compose/releases
在这里插入图片描述

传输到/usr/local/bin/目录下,并改名mv docker-compose-linux-x86_64 docker-compose
在这里插入图片描述

设置权限chmod 777 docker-compose并验证是否安装成功./docker-compose -v
在这里插入图片描述

配置环境变量vi ~/.bash_profile并使其生效source ~/.bash_profile
PATH=$PATH:/usr/local/bin/
在这里插入图片描述
在这里插入图片描述

验证是否安装成功./docker-compose -v
在这里插入图片描述

Docker-Compose的快速上手

注意:使用Docker-Compose去控制容器需要写yml文件,compose操作容器一定要进入配置文件目录

编写一个最最简单的yml:

version: '3'	# 冒号后面一定要有空格
services:redis:image: mycentos:redis

后台启动容器docker-compose up -d
在这里插入图片描述

查看容器运行情况docker-compose ps
在这里插入图片描述

docker-compose exec的使用(进入容器)docker-compose exec redis bash
停止并删除容器docker-compose down
停止并删除容器并删除volumedocker-compose down --volumes
停止启动容器docker-compose stop;docker-compose start

注意:操作docker-compose一定要在配置文件docker-compose.yml文件路径下操作

Compose核心技能

docker-compose.yml的三大部分:versionservicesnetworks,最关键是servicesnetworks两个部分

  • compose设置网络模式
  • compose使用端口映射
  • compose设置文件共享
  • compose管理多个容器
  • docker-compose.yml
version: '3'
services:nginx:image: mycentos:nginxnetwork_mode: "host"volumes:- /home:/usr/local/nginx/html- /var/logs/nginx/logs:/usr/local/nginx/logscommand: /usr/local/nginx/sbin/nginx -g "daemon off;"redis:image: mycentos:redisports:- "6380:6379"

后台启动容器docker-compose up -d
在这里插入图片描述

验证nginx

在挂载目录下(/home)建立index.html文件自定义内容,验证nginx:
在这里插入图片描述

验证redis

/usr/local/redis/bin/redis-cli -p 6380进入宿主机redis客户端,set name zyten
在这里插入图片描述

docker-compose exec redis bash进入容器,/usr/local/redis/bin/redis-cli进入redis客户端,get name获取宿主机设置的值,验证成功
在这里插入图片描述

Docker-Compose搭建个人博客

快速上手

/usr/local/docker-compose/test/wordpress目录下创建docker-compose.yml:

version: '3.3'
services:db:image: mysql:5.7volumes:- db_data:/var/lib/mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: somewordpressMYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpresswordpress:depends_on:- dbimage: wordpress:latestports:- "8000:80"restart: alwaysenvironment:WORDPRESS_DB_HOST: db:3306WORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: wordpressWORDPRESS_DB_NAME: wordpress
volumes:db_data: {}

docker-compose up -d运行
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

docker-compose.yml分析

这是搭建博客的docker-compose.yml文件

version: '3.3'
services:db:	# 创建一个数据库容器的自定义容器名image: mysql:5.7	# 相当于docker run -itd mysql:5.7volumes:	# 挂载- db_data:/var/lib/mysql	# 之前的方式都是直接挂载到本地,这种方式是卷标的形式挂载(注意:- db_data是参数,可以变,自定义,必须与下面对应)restart: always	# 总是自动重启,保证服务在线environment:	# 配置环境MYSQL_ROOT_PASSWORD: somewordpressMYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpresswordpress:	# 创建一个博客容器的自定义容器名depends_on:- db	# - db 是参数,与depends_on合起来的意思是只有当上面的mysql数据库安装成功后,这个wordpress才可以被安装;还有一个功能是docker --link将上面的mysql数据库,与这个wordpress应用连起来image: wordpress:latestports:- "8000:80"restart: alwaysenvironment:WORDPRESS_DB_HOST: db:3306WORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: wordpressWORDPRESS_DB_NAME: wordpress
volumes:db_data: {}

因为使用的卷标形式,但是不知道数据到底在本地的什么位置,需要通过卷标查看:
docker volume ls
docker volume inspect wordpress_db_data
在这里插入图片描述
在这里插入图片描述

可以看到具体挂载到了哪里:
在这里插入图片描述

相关内容

热门资讯

2025新版教程“血战麻将算番... 您好,血战麻将算番器这款游戏可以开挂的,确实是有挂的,通过微信【8198015 】很多玩家在这款游戏...
传递经验!德扑之心辅助工具(透... 1、超多福利:超高返利,海量正版游戏,德扑之心系统规律,上线德扑之心黑科技等满足你不同需求; 2、...
2025新版教程“真人四川麻将... 2025新版教程“真人四川麻将到底是不是有挂”确实真的有挂(详细教程),亲,有的,ai轻松简单,又可...
一分钟讲解“牛牛房卡微信链接房... 牛牛房卡微信链接是一款非常受欢迎的游戏,咨询房/卡添加微信:83404491许多玩家在游戏中会购买房...
传递经验!德扑之星网页版辅助工... 传递经验!德扑之星网页版辅助工具(透视)原来是有挂猫腻(2024已更新)(哔哩哔哩)是一款可以让一直...