1、用docker-compose拉起三个容器:nginx->ghost博客平台->mysql,拉起后可以直接访问ghost博客平台
2、目录结构:
ghost:
  data
  docker-compose.yml
  nginx:
    config.js
    Dockerfile
  ghost:
    nginx.conf
    Dockerfile
3、文件内容:
(1)docker-compose.yml
version: '2'
networks:
ghost:
services:
ghost-app:
build: ghost
networks:
- ghost
depends_on:
- db
ports:
- "2368:2368"
nginx:
build: nginx
networks:
- ghost
depends_on:
- ghost-app
ports:
- "80:80"
db:
image: "mysql:5.7.15"
networks:
- ghost
environment:
MYSQL_ROOT_PASSWORD: mysqlroot
MYSQL_USER: ghost
MYSQL_PASSWORD: ghost
volumes:
- $PWD/data:/var/lib/mysql
ports:
- "3306:3306"
(2)ghost->config.js
var path = require('path'),
config; config = {
production: {
url: 'http://mytestblog.com',
mail: {},
database: {
client: 'mysql',
connection: {
host : 'db',
user : 'ghost',
password : 'ghost',
database : 'ghost',
port: '3306',
charset : 'utf-8'
},
debug: false
},
path: {
contentPath: path.join(process.env.GHOST_CONTENT,'/')
},
server: {
host: '0.0.0.0',
port: '2368'
}
}
};
module.exports = config;
(3)ghost->Dockerfile
FROM ghost
COPY ./config.js /var/lib/ghost/content/config.js
EXPOSE 2368
CMD ["npm","start","--production"]
(4)nginx->nginx.conf
worker_processes 4; #工作进程数,数字越大,能同时处理的连接越多
events {worker_connections 1024;}
http {
server {
listen 80; #代理本地80端口
location / {
proxy_pass http://ghost-app:2368;
}
}
}
(5)nginx->Dockerfile
FROM nginx
COPY ./nginx.conf /etc/nginx/nginx.conf
EXPOSE 80 4、启动前准备:安装python、pip
yum install python36 --安装Python3.6
tar -zxvf pip-21.0.1.tar.gz #安装pip3,到https://pypi.org/project/pip/#files下载并上传pip包到服务器并解压pip-21.0.1.tar.gz包;pip是通用的 Python 包管理工具,提供了对 Python 包的查找、下载、安装、卸载的功能,功能类似于RedHat里面的yum
cd pip-21.0.1 #解压后进入pip目录
python3 setup.py install #用python3安装自己下载的python包
pip -V #查看是否安装成功,即查看pip版本号
5、用docker-compose拉取多个应用,在docker-compose.yml所在目录:
docker-compose up -d --此时会拉起服务,并创建3个容器nginx+ghost+mysql,up表示拉起,-d表示以后台的形式运行这3个容器(我已经创建过容器,所以显示recreating),此时浏览器输入http://服务器ip ,就可以看到自己的ghost博客首页

docker-compose stop --停止服务
docker-compose ps --查看被拉起的所有容器
docker-compose rm --删除服务中的所有容器

6、docker-compose.yml中常用命令:
build  -本地创建镜像
command --覆盖缺省命令
depends_on --连接容器
ports --暴露端口
volumes --卷
images --pull镜像
up --拉启服务
stop --停止服务
rm --删除服务中的各个容器
logs --观察各个容器的日志
ps --查看服务中的所有容器

docker:compose实战的更多相关文章

  1. Docker深入浅出系列 | Docker Compose多容器实战

    目录 前期准备 Docker Compose是什么 为什么要用Docker Compose Docker Compose使用场景 Docker Compose安装 Compose Yaml文件结构 C ...

  2. Istio入门实战与架构原理——使用Docker Compose搭建Service Mesh

    本文将介绍如何使用Docker Compose搭建Istio.Istio号称支持多种平台(不仅仅Kubernetes).然而,官网上非基于Kubernetes的教程仿佛不是亲儿子,写得非常随便,不仅缺 ...

  3. 010.Docker Compose构建WordPress实战

    一 前期规划 类型 版本 备注 WordPress镜像 wordpress:latest   MySQL数据库 5.7   Docker已安装,参考<002.Docker版本及安装>. D ...

  4. 029.Docker Compose部署Zabbix实战

    一 前期规划 1.1 Zabbix架构图 1.2 其他规划 组件 类型 版本 备注 Zabbix Web zabbix-web-apache-mysql镜像 wordpress:latest 也可采用 ...

  5. kubernetes 实战6_命令_Share Process Namespace between Containers in a Pod&Translate a Docker Compose File to Kubernetes Resources

    Share Process Namespace between Containers in a Pod how to configure process namespace sharing for a ...

  6. Docker小白到实战之Docker Compose在手,一键足矣

    前言 Docker可以将应用程序及环境很方便的以容器的形式启动,但当应用程序依赖的服务比较多,或是遇到一个大系统拆分的服务很多时,如果还一个一个的根据镜像启动容器,那就有点累人了,到这有很多小伙伴会说 ...

  7. Docker入门(三)使用Docker Compose

    Compose介绍   Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.Compose 是一个用户定义和运行多个容器的 Docker 应用程序.在 ...

  8. 【08】循序渐进学 docker:docker compose

    写在前面的话 在之前的操作中,即使是单个容器每次都需要敲很长的命令,当需要多个容器组合着用的时候更加麻烦,此时我们急需找到一种一次配置,随便运行的方法. 这就是这一节重点,单机容器编排工具:docke ...

  9. Docker Compose 部署 Redis 及原理讲解 | 懒人屋

    原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解  4.4k  字    16  分钟    2019-10-1 ...

  10. 什么,容器太多操作不过来?我选择Docker Compose梭哈

    接上一篇:面试官:你说你精通 Docker,那你来详细说说 Dockerfile 吧 一.容器之间通信 1.单向通信 1.1.什么意思 mysql和tomcat是两个独立的容器,但是tomcat需要和 ...

随机推荐

  1. KCP协议:从TCP到UDP家族QUIC/KCP/ENET

    行文前先安利下<再深谈TCP/IP三步握手&四步挥手原理及衍生问题-长文解剖IP >.<再谈UDP协议-浅入理解深度记忆> KCP协议科普 KCP是一个快速可靠协议,能 ...

  2. 什么是B树(B-树)?

    写在开头:B-树,就是B树.因B树的英文名称为B-tree ,B-树因此而来,有人会误以为B-树是一种树,而B树又是另外一种树.实际上,B-tree就是指的B树. 而且B-树不可以读成B减树... 一 ...

  3. mysql join 底层原理

    你知道 Sql 中 left join 的底层原理吗? 2019-09-10阅读 7130 https://cloud.tencent.com/developer/column/2367   01.前 ...

  4. 面试问题之C++语言:volatile关键字的作用

    volatile的作用 volatile关键字是防止在共享的空间发生读取的错误.只保证其可见性,不保证原子性:使用volatile指每次从内存中读取数据,而不是从编译器优化后的缓存中读取数据,简单来讲 ...

  5. Dubbo 支持分布式事务吗?

    目前暂时不支持,可与通过 tcc-transaction 框架实现 介绍:tcc-transaction 是开源的 TCC 补偿性分布式事务框架 Git 地址:https://github.com/c ...

  6. jupyter notebook使用技巧

    shift + tab 键可以查看对应源代码(注意:需要先将代码运行才能查看) Jupyter Notebook 的快捷键 Jupyter Notebook 有两种键盘输入模式:1.命令模式,键盘输入 ...

  7. 报错需要选择一个空目录,或者选择的非空目录下存在 app.json 或者 project.config.json解决方案

    前言 小程序的第一个坑就是,创建了一个小程序项目,却在微信web开发者工具无法打开... 报了个错:需要选择一个空目录,或者选择的非空目录下存在 app.json 或者 project.config. ...

  8. 安卓性能测试之 adb shell 常用命令

    pm list packages 列出包名adb shell pm list packages:列出所有的包名.adb shell dumpsys package:列出所有的安装应用的信息adb sh ...

  9. HTML表格CSS美化

    效果展示 style.css html{ width: 100%; height: 100%; overflow: hidden;}body{ width: 100%; height: 100%; f ...

  10. EMS邮箱数据库常用命令(二)

    1.查询邮箱数据库的使用空间 查询Exchange环境中所有邮箱数据库. 键入以下命令 Get-MailboxDatabase -Status | FL name,DatabaseSize 命令执行后 ...