docker-compose 安装

1.Mac/Windows:

安装docker的时候附带安装了。

2.Linux:

curl https://github.com/docker/compose

Linux 安装docker-compose

curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s )-$(uname -m) > /usr/local/bin/docker-compose

直接将对应平台的程序下载到本地输出成为文件,#手动设置具体值,可到github查询最新版本号

uname -s
uname -m
查看系统版本信息 chmod a+x 目录 :linux 所有人都可以执行这个文件,给权限的意识 最后,
docker-compose --version 查看是否安装成功 #### docker-compose实战
![](https://img2018.cnblogs.com/blog/1158417/201901/1158417-20190120154243988-827249705.png)
三层:nginx层、逻辑层、数据层 ![](https://img2018.cnblogs.com/blog/1158417/201901/1158417-20190120154347068-1853415769.png)

为应用创建一个目录

mkdir ghost

cd ghost

为三个层分别创建目录

mkdir ghost

mkdir nginx

mkdir data

cd ghost

touch Dockerfile

vi Dockerfile

内容:

FROM ghost

COPY ./config.js /var/lib/ghost/config.js

EXPOSE 2368

CMD ["npm","start","--production"]

cp ../../backup/ghost/ghost/config.js

#### 同样的,构建nginx

cd ..

cd nginx

touch Dockerfile

vi Dockerfile

内容:

FROM nginx

COPY nginx.conf /etc/niginx/nginx.conf

EXPOSE 80

touch nginx.conf

vi nginx.conf

内容:

woker_processes 4;

events {woker_connections 1024}

http {

server {

listen 80;

location / {

proxy_pass http://ghost-app:2368;

}

}

}

#### 创建docker-compose.yml

在ghost路径下

touch docker-compose.yml

vi docker-comopose.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
enviroment:
MYSQL_ROOT_PASSWORD: mysqlroot
MYSQL_USER: ghost
MSYQL_PASSWORD: ghost
volumes:
- $PWD/data:/var/lib/mysql
ports:
- "3306:3306"
![](https://img2018.cnblogs.com/blog/1158417/201901/1158417-20190120161816447-798945050.png)

#### 让docker-compose 拉起来

第一次生产镜像

docker-compose up -d

停止

docker-compose stop

干掉停止的

docker-compose rm

在已存在镜像的情况下,重新build

docker-compose build

然后

docker-compose up -d

成功启动一个多容器app

访问:localhost:80

访问:localhost:80/ghost

#### docker-compose 常用命令
![](https://img2018.cnblogs.com/blog/1158417/201901/1158417-20190120162936308-1118093758.png)
![](https://img2018.cnblogs.com/blog/1158417/201901/1158417-20190120162950633-332410580.png)

Docker学习之docker-compose的更多相关文章

  1. Docker学习之Docker容器基本使用

    Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式:-d 已存在的容器相关操作 启动:do ...

  2. Docker学习之Docker镜像基本使用

    Docker学习之Docker镜像基本使用 获取镜像 命令格式:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 例如: docker pull ...

  3. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  4. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  5. Docker学习笔记 - Docker的守护进程

    学习目标:  查看Docker守护进程的运行状态 启动.停止.重启Docker守护进程 Docker守护进程的启动选项 修改和查看Docker守护进程的启动选项 1.# 查看docker运行状态  方 ...

  6. Docker学习笔记 - Docker客户端和服务端

    学习内容: Docker客户端和服务端的通讯方式:client和自定义程序 Docker客户端和服务端的连接方式:socket 演示Docker客户端和服务端之间用remote-api通讯:nc   ...

  7. Docker 学习9 Docker私有registry

    一.docker registry分类 二.安装docker-hub提供的registry 1.安装 [root@localhost yum.repos.d]# yum install -y dock ...

  8. Docker学习之Docker Registry

    前言 前面已经学习了怎样通过Dockerfile来构建我们自己的镜像了,但是一个系统可能包含着很多个微服务即有很多个镜像,当镜像越来越多的时候,就必须得有一个地方来管理这些镜像,Docker官方提供了 ...

  9. Docker学习:Docker安装和基本使用

    Docker Docek是一种容器技术.容器是一种轻量级.可移植.自打包的软件技术,使应用程序可以在几乎任何地方以相同的方式运行. 使用者可以在笔记本上创建并测试好的容器,无需任何修改就能够在生产系统 ...

  10. Docker学习之docker架构

    docker架构 解释 1.docker命令提交给docker daemon进行处理,可以拖取镜像,运行容器等等. 2.最右边的实际上是互联网的sass服务,docker daemon可以和Regis ...

随机推荐

  1. case when多条件

    SELECT label ,label3 ,lon_cen ,lat_cen ,lon3 ,lat3 ,antenna_height ,horizontal_angle ,CASE WHEN roun ...

  2. 行车记+翻车记:.NET Core 新车改造,C# 节能降耗,docker swarm 重回赛道

    非常抱歉,10:00~10:30 左右博客站点出现故障,给您带来麻烦了,请您谅解. 故障原因与博文中谈到的部署变更有关,但背后的问题变得非常复杂,复杂到我们都在怀疑与阿里云服务器 CPU 特性有关. ...

  3. 使用docker快速搭建本地环境

    在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越来越多. 然而要顺利的安装好这些中间件也是一个比较费时费力的工作. 俗话说" ...

  4. aabccd统计每个字符出现的次数,结果显示{ a: 2, b: 1, c: 2, d: 1 };去掉重复的字符,使结果显示abcd

    遍历字符串的方式和遍历数组的方式有点相似,或者说就是相同的.在学习数组的遍历方法之前,可以通过for循环去遍历数组,同样,字符串也可以:字符串跟数组都有一个length的属性.下面代码奉上,个人思路! ...

  5. maven出现:Failed to execute goal on project ...: Could not resolve dependencies for project ...

    项目结构是一个父项目,多个子项目目录: 例如: common --------------(父项目) fristDemo    ------------(子项目) 如果在子项目中调用了父项目,而对(子 ...

  6. Linux环境搭建 | 手把手教你安装Linux虚拟机

    前言 作为一名Linux工程师,不管是运维.应用.驱动方向,在工作中肯定会需要Linux环境.想要获得Linux环境,一个办法就是将电脑系统直接换成Linux系统,但我们平常用惯了Windows系统, ...

  7. VScode 插件推荐与C/C++配置

    以下是我经常用到的VScode插件.由于插件本身具有详细的配置和介绍,不对插件本身的安装配置进行说明,仅仅支出这些插件的主要功能.具体使用强烈推荐看一下安装插件后的说明,大多数的问题和设置都可以找到, ...

  8. three.js模拟实现太阳系行星体系

    概况如下: 1.SphereGeometry实现自转的太阳: 2.RingGeometry实现太阳系星系的公转轨道: 3.ImageUtils加载球体和各行星贴图: 4.canvas中createRa ...

  9. C语言打印图形

    //输出图形 * * * * * * * * * * * * * * * * * * * * * * * * * //每行5个* void test1(){ //    外层负责行,外层执行一次,内层 ...

  10. Codeforces 964C Alternating Sum

    Alternating Sum 题意很简单 就是对一个数列求和. 题解:如果不考虑符号 每一项都是前一项的 (b/a)倍, 然后考虑到符号的话, 符号k次一循环, 那么 下一个同一符号的位置 就是 这 ...