009.Docker Compose部署及基础使用
一 Docker Compose概述
- 在Dockerfile中定义您的应用程序环境,以便可以在任何地方进行再生产。
- 定义构成应用程序的服务,docker-compose.yml 以便它们可以在隔离环境中一起运行。
- 运行docker-compose up和Compose start并运行整个应用程序。
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
- 启动,停止和重建服务
- 查看正在运行的服务的状态
- 流式传输运行服务的日志输出
- 在服务上运行一次性命令
二 Docker Compose安装
2.1 二进制下载安装
root@docker01:~# sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
root@docker01:~# sudo chmod +x /usr/local/bin/docker-compose
2.2 pip安装(推荐)
root@docker01:~# apt-get -y install python
root@docker01:~# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
root@docker01:~# python get-pip.py #安装PIP
root@docker01:~# pip install docker-compose #安装docker compose
root@docker01:~# docker-compose version #验证安装
三 Docker Compose示例
3.1 构建应用程序
root@docker01:~# mkdir composetest #创建Docker Compose目录
root@docker01:~# cd composetest/
root@docker01:~/composetest# vi app.py
3.2 创建Dockerfile
root@docker01:~/composetest# vi Dockerfile #使用Dockerfile构建镜像
FROM python:3.4-alpine
RUN mkdir /root/.pip #创建pip源配置目录
ADD pip.conf /root/.pip/pip.conf #将国内pip源添加至需要构建的镜像中
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt #根据文件列表使用pip安装
CMD ["python", "app.py"]
root@docker01:~/composetest# vi requirements.txt #创建安装软件列表文件
flask
redis
root@docker01:~/composetest# vi pip.conf #创建基于国内pip源的文件
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
- 从Python 3.4映像开始构建映像。
- 创建pip配置目录。
- 将国内pip源配置文件添加到/root/.pip/映像中的路径中。
- 将当前目录添加.到/code映像中的路径中。
- 将工作目录设置为/code。
- 安装Python相关包。
- 将容器的默认命令设置为python app.py。
3.3 使用Docker Compose构建服务
root@docker01:~/composetest# vi docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
- 使用从Dockerfile当前目录中构建的图像。
- 将容器上的公开端口5000转发到主机上的端口5000。即使用Flask Web服务器的默认端口5000。
root@docker01:~/composetest# docker-compose up -d #开始构建
四 验证确认
root@docker01:~/composetest# docker-compose ps
root@docker01:~/composetest# docker ps
root@docker01:~/composetest# docker image ls
五 挂载卷构建
root@docker01:~/composetest# vi docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: "redis:alpine"
root@docker01:~/composetest# docker-compose up -d #再次构建
root@docker01:~/composetest# vi app.py
……
return 'Hello Docker! I have been seen {} times.\n'.format(count)
……
六 Docker Compose其他常用命令
docker-compose up -d:在后台运行服务;
docker-compose ps:查看当前正在运行的容器;
docker-compose run:运行一次性命令,如docker-compose run web env。
docker-compose stop:停止服务,如docker-compose stop web
docker-compose down --volumes:完全删除容器同时删除容器使用的数据卷。
009.Docker Compose部署及基础使用的更多相关文章
- 029.Docker Compose部署Zabbix实战
一 前期规划 1.1 Zabbix架构图 1.2 其他规划 组件 类型 版本 备注 Zabbix Web zabbix-web-apache-mysql镜像 wordpress:latest 也可采用 ...
- Docker Compose 部署前后端分离应用
部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...
- 在Windows Server 2019通过Docker Compose部署Asp.Net Core
一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...
- Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose部署Nexus3时的docker-compose,yml代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose 部署 Redis 及原理讲解 | 懒人屋
原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解 4.4k 字 16 分钟 2019-10-1 ...
- Docker Compose部署 EFK(Elasticsearch + Fluentd + Kibana)收集日志
简述 本文用于记录如何使用Docker Compose部署 EFK(Elasticsearch + Fluentd + Kibana) 收集Docker容器日志,使用EFK,可以无侵入代码,获得灵活, ...
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...
随机推荐
- B - Finding Palindromes (字典树+manacher)
题目链接:https://cn.vjudge.net/contest/283743#problem/B 题目大意:给你n个字符串,然后问你将这位n个字符串任意两两组合,然后问你这所有的n*n种情况中, ...
- 12章 搜索框架ElasticSearch介绍和整合SpringBoot 4节课
1.搜索引擎知识和搜索框架elasticsearch基本介绍 简介:通过京东电商 介绍什么是搜索引擎,和开源搜索框架ElasticSearch6.x新特性介绍 前言:介绍ES的主要特点和使用场 ...
- plist反序列化
// // ViewController.m // 03-plist文件的一个反序列化 // // Created by jerry on 15/9/28. // Copyright (c) ...
- ubuntu + usb转RS232驱动
1. 购买USB转串RS232/485/422 如果你的电脑有串口的话,就不用买啦,我的台式机有串口,把USB转串的线插上之后,unbuntu就不支持了.(自己有嘛) 就是输入 ls /dev/tt ...
- 关注网页的更新状况,了解最新的handsup 消息.
// 第一部分是网页截图和源码保存 // upon page load. var fs = require("fs"); var resourceWait = 300, maxRe ...
- 工作中bug笔记
1.报Cannot read property indexOf of undefined 错误的时候!!!报这种错的时候,一般是因为indexOf前面检查的东西是不存在的!!!!! 2.使用< ...
- PHP框架CodeIgniter--URL去除index.php
今天学习CodeIgniter简称CI的第一天,记录下学习心得. CI中国https://codeigniter.org.cn/user_guide/general/urls.html?highlig ...
- html dom之iframe对象
当从父页面中需要获取使用iframe嵌入的内容时,可以使用图中后面的两个属性 var sonDocument = document.getElementById('iframe_id').conten ...
- C++11 AUTO 类型实践
auto在C++11中引入,为大家带来方便. 具体使用及注意事项参考: https://blog.csdn.net/xiaoquantouer/article/details/51647865 htt ...
- 前端工程化-webpack简介(一)
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependenc ...