掌握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月27日召开股东... 金融界6月2日消息,瀚蓝环境发布公告,将于2025年6月27日召开第1次临时股东大会,网络投票同日进...
资讯┃蓝天彬律师参加瀛和刑辩论... 滥用管辖权链接点进行违法管辖,跨地区抓捕民营企业家以及员工,是当前民营经济保护的焦点问题和痛点问题。...
原创 国... 国际调解院公约的签署仪式于最近在充满活力的香港举行。国际调解院的总部设立在这座国际大都会,参与到这一...
英国商界人士:美国关税政策成为... 新华社伦敦6月2日电(记者郑博非)英国一些商界人士近日在全球英国2025年贸易展会上接受新华社记者采...
一女子立遗嘱给宠物狗留了十几万... 据广州日报报道,近日,广州一名52岁离异女子立遗嘱,划出10余万元留给4只宠物狗,相关报道引发热议。...
全球媒体聚焦|香格里拉对话会:... 为期三天的第22届香格里拉对话会6月1日闭幕。多家外媒认为,会议暴露出美国和欧洲在亚洲问题上的紧张关...
南京开放“以债换房”政策,可直... ⇧点蓝色字关注“互联网联合辟谣平台” 近日,有“南京二手房零首付李经理”“合肥瑶珺房地产代理有限公司...
一公司骗享约61万,被罚885... 近日,国家税务总局重庆市税务局公布两起骗享税费优惠政策典型案件,分别是重庆百子讯科技有限公司违规享受...