docker教程(5)--compose
程序员文章站
2022-03-04 21:07:46
...
Docker Compose 概念
Docker Compose 是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用。
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过sevices来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。
Docker Compose 安装
- mac:自带不需要独立安装
-
linux:
curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
使用Docker Compose 安装ghost
Ghost 基于 JavasSript 的 Node.js 进行开发的一个开源的博客系统。
基本架构如下:
-
创建一个目录
- ghost_compose 目录:
mkdir ghost_compose && cd ghost_compose
,多容器运行的主目录 - nginx 目录:
mkdir nginx
,用来创建nginx容器,对应docker-compose.yml中的nginx服务 - data 目录:不是用来创建mysql容器的,而是用来挂载mysql的存储 - 注意:mysql容器和ghost容器通过docker-compose.yml的镜像直接创建
- ghost_compose 目录:
-
创建 nginx容器
- 进入到 nginx 目录
-
创建Dockerfile文件,内容如下:
FROM nginx COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80
创建 nginx.conf 文件,内容如下:
worker_processes 4; events { worker_connections 1024; } http { server { listen 80; location / { proxy_pass http://ghost-app:2368 } } }
-
返回到ghost_compose目录
- 创建 docker-compose.yml 文件,内容如下:
version: '3.1' networks: ghost: services: ghost-app: image: ghost restart: always networks: - ghost depends_on: - db ports: - 2368:2368 environment: database__client: mysql database__connection__host: db database__connection__user: root database__connection__password: example database__connection__database: ghost nginx: build: nginx networks: - ghost depends_on: - ghost-app ports: - "80:80" db: image: mysql:5.7.15 restart: always networks: - ghost environment: MYSQL_ROOT_PASSWORD: example MYSQL_USER: root volumes: - $PWD/data:/var/lib/mysql ports: - "3306:3306"
-
返回到ghost_compose目录,执行
docker-compose up -d
打开浏览器:访问localhost:80,输出如下:
Docker Compose 常用命令
命令 | 作用 |
---|---|
build | 构建或重建服务 |
help | 命令帮助 |
kill | 杀掉容器 |
logs | 显示容器的输出内容 |
port | 打印绑定的开放端口 |
ps | 显示容器 |
pull | 拉取服务镜像 |
restart | 重启服务 |
rm | 删除停止的容器 |
run | 运行一个一次性命令 |
scale | 设置服务的容器数目 |
start | 开启服务 |
stop | 停止服务 |
up | 创建并启动容器 |
下一篇: 十大排序算法(java实现)
推荐阅读
-
5分钟快速搭建FTP服务器的图文教程
-
docker 入门_PHP教程
-
浅谈Docker-compose中的depends_on顺序的问题解决
-
简单介绍下 PHP5 中引入的 MYSQLI的用途_PHP教程
-
docker-compose教程之安装使用和快速入门
-
时序数据库DolphinDB基于Docker的集群部署教程
-
LAMP(Apache MySQL PHP)一键安装包教程(CentOS 5 32bit)
-
Windows下全新安装Apache2,PHP5,MYSQL5,Zend(1)_PHP教程
-
100行PHP代码实现socks5代理服务器,100行socks5_PHP教程
-
php结合md5实现的加密解密方法,php结合md5加密解密_PHP教程