Docker-compose 多个Docker容器管理:以MYSQL和Wordpress为例

搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/docker-compose.html

环境:Ubuntu

[email protected]:~$ uname -a
Linux jinhan-chen-110 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[email protected]:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.2 LTS
Release:	16.04
Codename:	xenial

先安装好docker:参考:http://www.lenggirl.com/tool/docker-ubuntu-install.html

一. 安装

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

二. 拉镜像

docker pull mysql
docker pull wordpress

三. 编辑docker-compose.yaml

version: ‘2‘
services:
    web:
      image: wordpress:latest
      depends_on:
        - db
      links:
        - db
      ports:
        - "8002:80"
      environment:
        WORDPRESS_DB_HOST: db:3306
        WORDPRESS_DB_PASSWORD: 123456
      volumes:
        - /home/jinhan/wordpress:/var/www/html

    db:
      image: mysql
      ports:
        - "8003:3306"
      environment:
        - MYSQL_ROOT_PASSWORD=123456
      volumes:
        - /home/jinhan/mysql/data:/var/lib/mysql
        - /home/jinhan/mysql/conf:/etc/mysql/conf.d

说明:

version: ‘2‘
services:
    web:    // 服务名
      image: wordpress:latest  // 镜像名
      depends_on:   // 依赖的服务名,即是必须在这个服务启动后再启动
        - db
      links:   // 链接到的服务,即是对于这个服务洪的容器,网络是透明的,可以直接使用其内部端口访问
        - db
      ports:  // 端口主机映射,在外面可以用8002访问到网站
        - "8002:80"
      environment: // 环境变量
        WORDPRESS_DB_HOST: db:3306  // 数据库地址,服务名和端口,因为上面已经links,所以自动会寻址
        WORDPRESS_DB_PASSWORD: 123456 // 数据库密码
      volumes:
        - /home/jinhan/wordpress:/var/www/html  // 挂载卷,拉镜像会把wordpress下载在这里,我们把它挂载在本地,这样我们修改本地文件即可

    db:
      image: mysql
      ports:
        - "8003:3306"
      environment:
        - MYSQL_ROOT_PASSWORD=123456
      volumes:
        - /home/jinhan/mysql/data:/var/lib/mysql  // 数据库数据,挂在本地
        - /home/jinhan/mysql/conf:/etc/mysql/conf.d // 数据库配置,我们要自己放

四. 挂载卷

我们用MYSQL和Wordpress来做试验

先配置mysql config,加大连接数,因为连接数可能会爆:

mkdir -p /home/jinhan/mysql/conf
vim /home/jinhan/mysql/conf/my.cnf

[mysqld]
max_connections = 15000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 1000
skip-name-resolve

我们已经把所有的卷都挂在本地,这样你每次启动的数据都不会消失!

五. 启动

docker-compose up

浏览器访问:http://127.0.0.1:8002/ 数据库访问:root:123456 端口8003

如果

show variables like ‘%max_connect%‘;

显示15000,配置成功!

六. 查看

docker-compose ps

七. 后台启动

docker-compose up -d

八. 查看日志

docker-compose logs -f

九. 删除容器

docker-compose rm

十. 寻求帮助

docker-compose -h

搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/docker-compose.html

时间: 2024-08-29 09:30:12

Docker-compose 多个Docker容器管理:以MYSQL和Wordpress为例的相关文章

docker技术剖析--镜像、容器管理

防伪码:博观而约取,厚积而薄发                                 docker技术剖析--镜像.容器管理 一.Docker简介 Docker是什么? Docker的英文本意是"搬运工",在程序员的世界里,Docker搬运的是集装箱(Container),集装箱里装的是任意类型的App,开发者通过Docker可以将App变成一种标准化的.可移植的.自管理的组件,可以在任何主流系统中开发.调试和运行. 说白了,docker是一种用了新颖方式实现的轻量级虚拟机,

docker一: 镜像与容器管理

Docker的优势: 1.启动非常快,秒级实现. 2.资源利用率高,在机器中以进程的方式存在,一台机器可以跑上百个docker容器. 3.创建和配置后可以在任意地方运行docker,只需将其上传到docker仓库,用到时拉下来就可以 4.易迁移,平台依赖性不强. Docker的主要概念: 1.镜像:只读模板,类似于安装系统用到的iso文件,对于镜像我们可以自定义,比如在一台机器上安装好lnmp环境,然后打包成为一个镜像,那么后期只需要从仓库中把这个镜像拉下来就可以直接使用lnmp环境了,非常方便

docker compose的简单使用

笔记内容:docker compose的简单使用笔记日期:2018-02-08 25.17 安装docker compose 25.18 docker compose示例 安装docker compose docker compose可以方便我们快捷高效地管理容器的启动.停止以及重启等操作,和批量管理容器,它类似于linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比如用什么镜像.数据卷.网络模式.监听端口等信息.我们可以在一个compose文件中定义一个多容器的应

Docker(八)用docker compose部署服务

用docker compose部署服务 docker compose可以方便我们快捷高效地管理容器的启动.停止.重启等操作,它类似linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比如用什么镜像.数据卷.网络模式.监听端口等信息.我们可以在一个compose文件中定义一个多容器的应用,然后通过该compose来启动这个应用. 下载安装docker-compose # curl -L https://github.com/docker/compose/release

Docker & ASP.NET Core (5):Docker Compose

原文:Docker & ASP.NET Core (5):Docker Compose 第一篇:把代码连接到容器 第二篇:定制Docker镜像 第三篇:发布镜像 第四篇:容器间的连接 Docker Compose简介 Compose是一个用来定义和运行多容器Docker应用的工具.使用Compose的时候,你可以使用一个YAML文件来配置你应用的服务.然后根据配置,使用一个命令即可创建并运行所有的服务. 使用Compose的时候通常分三步: 使用Dockerfile定义你的环境 在docker-

Docker 核心技术之Docker Compose

Docker Compose 简介 Docker Compose是什么? Docker Compose是一个能一次性定义和管理多个Docker容器的工具. 详细地说: Compose中定义和启动的每一个容器都相当于一个服务(service) Compose中能定义和启动多个服务,且它们之间通常具有协同关系 管理方式: 使用YAML文件来配置我们应用程序的服务. 使用单个命令(docker-compose up),就可以创建并启动配置文件中配置的所有服务.  Docker Compose 工作原理

Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)

场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100902301 Docker Compose基本使用-使用Compose启动Tomcat为例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100904080 Docker Compose部署项目到容器-基于Tomc

Docker Compose 项目打包部署

Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知使用 Docker Compose 可以轻松.高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具 Docker 和 Compose兼容性看下图:          

使用Docker compose编排Laravel应用

前言 Laravel官方开发环境推荐的是Homestead(其实就是一个封装好的Vagrant box),我感觉这个比较重,于是自己用Docker compose编排了一套开发环境,在这里分享下. 环境要求 先要安装好Docker 和 Docker compose,而且Docker 仓库镜像最好换成国内的.一般地,我开发电脑上会运行一个Vagrant,然后再在里面运行Docker等应用. 主要思路 Docker官方推荐的是一个容器运行一个服务,所以会有Compose编排,各个服务间通过容器互联技