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

文章目录

  • 什么是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
在这里插入图片描述
在这里插入图片描述

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

相关内容

热门资讯

嘉兴男子与妻争吵,突然将行李箱... 近日,浙江嘉兴一对夫妻因琐事发生争吵,丈夫突然将装满衣物的行李箱从6楼扔到楼下,引发关注。11月22...
三地107家律所齐聚丰台,京津... 11月22日,京津冀律师驿站举办“党建业务深度融合 促进行业规范发展”主题活动,发布“百千万行动计划...
家装预付资金安全困局如何破解,... 家装预付资金安全困局如何破解 专家提出:建立“先验收后付款”装修资金存管制度 预交数万元甚至数十万元...
工行安康解放路支行积极开展《反... 为深入贯彻落实《国家金融监督管理总局安康监管分局办公室关于开展<反有组织犯罪法>宣传活动的通知》要求...
重庆公布育儿补贴制度实施方案 原标题:每孩每年3600元 重庆公布育儿补贴制度实施方案 11月21日,记者了解到,市卫生健康委、市...
十五运会组委会在深总结本届赛事... 深圳新闻网2025年11月22日讯(深圳报业集团记者 林炜航)11月21日,十五运会组委会在深圳市民...
中国军视网:日本妄言击沉福建舰... 本文转自【中国军视网】; 日本首相高市早苗发表涉台错误言论,公然挑战一个中国原则,甚至还有日本无知政...
重磅!东莞长安50万㎡产城发布... 在当下竞争激烈的市场环境中,中小企业如何突破成本压力,找到一片既能扎根成长又能眺望未来的理想栖息地?...
毕马威:政策、资本等多维着力 ... 由毕马威联合长三角G60科创走廊创新研究中心主办的“长三角高端装备新质领袖榜单发布仪式”于11月21...