• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > Docker系列之使用Docker Compose编排容器

Docker系列之使用Docker Compose编排容器

作者:ee900222 字体:[增加 减小] 来源:互联网

本文主要包含Docker,Compose编排容器,docker,容器编排等服务器相关知识,ee900222 希望可以进行参考

1. 前言

Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器。

使用Compose 基本上分为三步:

1.Dockerfile 定义应用的运行环境

2.docker-compose.yml 定义组成应用的各服务

3.docker-compose up 启动整个应用

2. 安装Compose

直接从github下载即可,前提要先安装Docker,版本要1.9.1以上

Note that Compose 1.8.0 requires Docker Engine 1.10.0 or later for version 2 of the Compose File format, and Docker Engine 1.9.1 or later for version 1.

# curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose

也可以用pip或官网的run.sh脚本安装

安装后确认

# docker-compose --version

3. 使用Compose

3.1 创建一个Python应用, 使用Flask,将数值记入Redis

3.1.1 建立一个应用的目录,创建Python文件

# mkdir python
# cd python

# vi app.py 
from flask import Flask
from redis import Redis

app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
  redis.incr('hits')
  return 'Hello World! I have been seen %s times.' % redis.get('hits')

if __name__ == "__main__":
  app.run(host="0.0.0.0", debug=True)

# vi requirements.txt 
flask
redis

3.1.2 创建 Dockerfile

在同一目录下,创建Dockerfile

# vi Dockerfile 
FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD python app.py

对上面的Dockerfile做一下简单说明:

  1. 容器使用Python 2.7的镜像
  2. 将当前目录下文件拷贝到容器内/code
  3. 指定工作目录为/code
  4. 安装python需要的库:flask, redis
  5. 容器执行命令 python app.py

3.1.3 创建编排脚本

在同一目录下,创建 docker-compose.yml

# cat docker-compose.yml 
version: '2'
services:
 web:
  build: .
  ports:
   - "5000:5000"
  volumes:
   - .:/code
  depends_on:
   - redis
 redis:
  image: redis

对上面的编排脚本做一下简单说明:

  1. 这个应用定义了两个服务:web, redis
  2. web容器通过当前路径下的Dockerfile生成
  3. web容器内的5000端口映射到主机的5000端口
  4. 将当前目录挂载到web容器内/code
  5. web容器依赖于redis容器
  6. redis容器从Docker Hub获取镜像

3.1.4 启动应用

会执行编排脚本,分别制作和抓取web,redis镜像,启动容器

# docker-compose up

3.1.5访问应用

http://localhost:5000/

3.2 其他命令

3.2.1 daemon模式启动/停止

# docker-compose up -d

# docker-compose stop

3.2.2 查看信息

# docker-compose ps

3.2.3 对容器执行命令(一次)

#docker-compose run services cmd

例如:查看web容器环境变量

# docker-compose run web env

3.3 创建一个Wordpress应用

3.3.1建立一个应用的目录

# mkdir wordpress
# cd wordpress

3.3.2 创建 docker-compose.yml

# cat docker-compose.yml 
version: '2'
services:
 db:
  image: mysql:5.7
  volumes:
   - "./.data/db:/var/lib/mysql"
  restart: always
  environment:
   MYSQL_ROOT_PASSWORD: wordpress
   MYSQL_DATABASE: wordpress
   MYSQL_USER: wordpress
   MYSQL_PASSWORD: wordpress

 wordpress:
  depends_on:
   - db
  image: wordpress:latest
  links:
   - db
  ports:
   - "8000:80"
  restart: always
  environment:
   WORDPRESS_DB_HOST: db:3306
   WORDPRESS_DB_PASSWORD: wordpress

MySQL的数据目录挂载到当前目录下,./.data/db不存在时会自动创建。

3.3.3 启动应用

# docker-compose up -d

3.3.4 确认

# docker-compose ps

3.3.5 访问应用

http://localhost:8000/

初始化设置后,就可以看到Wordpress的页面

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:

  • Docker 容器编排利器Compose(起步篇)
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Docker实践8:Compose,docker实践compose
  • Docker buildx构建多平台镜像并推送到私有仓库的方法
  • Docker三个基本概念镜像(Image)容器(Container)仓库(Repository)
  • 什么是Docker?为什么要使用Docker
  • docker 开源的应用容器引擎
  • 如何给docker设置http代理
  • docker官方mysql镜像自定义配置详解
  • 详解Docker数据管理(数据卷&数据卷容器)
  • 如何利用Docker容器实现代理转发与数据备份详解
  • 详解Docker Swarm 在持续集成测试中的应用

相关文章

  • Docker堆栈的管理操作详解
  • 中小企业的大数据技术路线选择(二)-Cassandra+Presto方案,-cassandrapresto
  • Docker 解决容器时间与主机时间不一致的问题三种解决方案
  • 详解docker 允许主机ssh连接到docker容器中
  • Docker 限制容器的 Block IO使用
  • Docker与Golang的巧妙结合
  • 详解VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射
  • docker 动态映射运行的container端口实例详解
  • docker实践之容器的导入与导出
  • Spark实现K-Means算法代码示例

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • VMWare 虚拟机Centos7安装Oracle数据库的教程图解
    • VirtualBox 在Centos 7 中安装增强功能图解 (共享文件夹)
    • Mac上使用Docker如何快速启动MySQL测试
    • 服务器虚拟化需要先考虑存储问题
    • 详解Docker中VLAN网络模式的配置
    • Docker占满磁盘空间的问题解决办法
    • 详解Docker创建php开发环境遇到的权限问题解决方案
    • java.util.ConcurrentModificationException 解决方法
    • Mac下部署springBoot项目到Docker中(demo)
    • 手把手教你使用 virtualBox 让虚拟机连接网络的教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有