掌握CentOS7环境下的Docker使用(七)Compose操作容器快速搭建个人博客

什么是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:nginx
		network_mode: "host"
		volumes:
		- /home:/usr/local/nginx/html
		- /var/logs/nginx/logs:/usr/local/nginx/logs
		command: /usr/local/nginx/sbin/nginx -g "daemon off;"
	redis:
		image: mycentos:redis
		ports:
		- "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.7
        volumes:
            - db_data:/var/lib/mysql
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: somewordpress
            MYSQL_DATABASE: wordpress
            MYSQL_USER: wordpress
            MYSQL_PASSWORD: wordpress
    
    wordpress:
        depends_on:
            - db
        image: wordpress:latest
        ports:
            - "8000:80"
        restart: always
        environment:
            WORDPRESS_DB_HOST: db:3306
            WORDPRESS_DB_USER: wordpress
            WORDPRESS_DB_PASSWORD: wordpress
            WORDPRESS_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.7
        volumes:	# 挂载
            - db_data:/var/lib/mysql	# 之前的方式都是直接挂载到本地,这种方式是卷标的形式挂载(注意:- db_data是参数,可以变,自定义,必须与下面对应)
        restart: always	# 总是自动重启,保证服务在线
        environment:	# 配置环境
            MYSQL_ROOT_PASSWORD: somewordpress
            MYSQL_DATABASE: wordpress
            MYSQL_USER: wordpress
            MYSQL_PASSWORD: wordpress
    
    wordpress:	# 创建一个博客容器的自定义容器名
        depends_on:
            - db	# - db 是参数,与depends_on合起来的意思是只有当上面的mysql数据库安装成功后,这个wordpress才可以被安装;还有一个功能是docker --link将上面的mysql数据库,与这个wordpress应用连起来
        image: wordpress:latest
        ports:
            - "8000:80"
        restart: always
        environment:
            WORDPRESS_DB_HOST: db:3306
            WORDPRESS_DB_USER: wordpress
            WORDPRESS_DB_PASSWORD: wordpress
            WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆浆两块钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值