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. 迷宫问题,打印所有路径,深度搜索,dfs

    #include<iostream> using namespace std; int maze [5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 ...

  2. flexible如何实现自动判断dpr?

    判断机型, 找出样本机型去适配. 比如iphone以6为样本, 宽度375px, dpr是2

  3. httpRunner使用小结

    1.每个系统可以给所有相关接口准备一份完整的主流程数据,这样就不用每执行一条用例就要先执行很多前置用例2.每条用例在设计之初,关于使用的前置数据,以及条件判断的数据值,以及设置的前提条件数据值,尽量保 ...

  4. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?

    答:会执行,在方法返回调用者前执行.

  5. 作为 务注册中心,Eureka比Zookeeper好在哪里?

    (1)Eureka保证的是可用性和分区容错性,Zookeeper 保证的是一致性和分区容错性 . (2)Eureka还有一种自我保护机制,如果在15分钟内超过85%的节点都没有正常的心跳,那么Eure ...

  6. Kafka 高效文件存储设计特点?

    Kafka把topic中一个parition大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用. 通过索引信息可以快速定位message和确定response的 ...

  7. Spring配置文件?

    Spring配置文件是个XML 文件,这个文件包含了类信息,描述了如何配置它们,以及如何相互调用.

  8. 为什么需要域驱动设计DDD?

    我们需要 DDD 的因素 – 微服务面试问题

  9. Spring Framework远程代码执行漏洞复现(CVE-2022-22965)

    1.漏洞描述 漏洞名称 Spring Framework远程代码执行漏洞 公开时间 2022-03-29 更新时间 2022-03-31 CVE编号 CVE-2022-22965 其他编号 QVD-2 ...

  10. 云集,让 web app 像 native app 那样运行(雄起吧,Web 开发者)

    让 web app 像 native app 那样运行 云集是一个轻应用(即 web app)的运行环境,可以让 web app 像 native app 那样运行. just like this 这 ...