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

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

环境:Ubuntu

jinhan@jinhan-chen-110:~$ 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
jinhan@jinhan-chen-110:~$ 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

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

  1. Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  2. Docker之单多/机容器管理

    Compose是用于定义和运行多容器Docker应用程序的工具.通过Compose,您可以使用YAML文件来配置应用程序的服务.然后,使用一个命令,就可以从配置中创建并启动所有服务. Docker-C ...

  3. docker简单介绍----镜像和容器管理

    docker可以分为三部分:docker镜像   docker仓库  docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...

  4. Docker Compose部署项目到容器-基于Tomcat和mysql的商城项目(附源码和sql下载)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  5. Docker&K8S&持续集成与容器管理--系列教程

    前言 网络虚拟化 一 Docker简介 Docker介绍  → B站视频链接 Docker架构  → B站视频链接 二 Docker安装 Ubuntu Docker 安装 CentOS Docker ...

  6. docker 创建.netcore2.2 api容器 以及连接mysql容器

    1]环境说明 操作系统:Window 10 专业版 开发工具 Vs2019专业版 Docker:  Docker for Windows  docker在windows上安装完毕之后可以看到 2]拉取 ...

  7. [Docker6] Docker compose多容器运行与管理

    六.Docker compose docker compose就是通过yml文件来定义和运行多个容器docker应用程序的工具,三步过程就能跑起一个compose: 定义应用程序的环境(yml中) 定 ...

  8. Docker 容器管理

    单一容器管理 容器的标识符 每个容器被创建后都会分配一个CONTAINER_ID作为容器的唯一标识符,后续的启动.停止等操作都通过CONTAINER_ID来完成的. CONTAINER_ID很难记忆, ...

  9. Docker深入浅出系列 | Docker Compose多容器实战

    目录 前期准备 Docker Compose是什么 为什么要用Docker Compose Docker Compose使用场景 Docker Compose安装 Compose Yaml文件结构 C ...

随机推荐

  1. 集群/分布式环境下5种session处理策略

    转载自:http://blog.csdn.net/u010028869/article/details/50773174?ref=myread 前言 在搭建完集群环境后,不得不考虑的一个问题就是用户访 ...

  2. php系统共享模板问题

    我们在用php+html+css来写一个管理系统时,例如报名系统.投票系统,统计系统等,我们往往需要在管理后台查看每一位报名者的情况,问题接着就来了,由于比赛或者活动要求不同个,往往报名表不太一样,这 ...

  3. 第41篇 推荐一个jekyll博客模板

    本人用的模板是基于Codeboy的博客模板改造模板,(由于本人可能会有很多样式修改,所以不再将修改pullrequst到原项目,在此对codeboy模板表示感谢).功能改造如下: 添加微信支付宝打赏 ...

  4. Java中设计模式之生产者消费者模式-4

    引言 生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区.其中一个是生产者,用于将消息放入缓冲区:另 ...

  5. javaSE_06Java中的数组(array)

    1.什么是数组? 顾名思义,即为数据的组合或集合,数组就是用来表示一组数据的. 比如没有数组之前,我们要存储多个姓名的信息 String name1; String name2; String nam ...

  6. PHP版本替换, phpinfo和php -v显示版本信息不一致

    环境:OS X EI Capitan 10.11 & lnmp 背景: 1想将lamp(xampp安装的,php5.2)换成 lnmp(php7.0)   2php5.2卸载(xampp卸载& ...

  7. JavaScript设计模式_03_代理模式

    代理模式是非常常见的模式,比如我们使用的VPN工具,明星的经纪人,都是代理模式的例子.但是,有人会疑问,明明可以直接访问对象,为什么中间还要加一个壳呢?这也就说到了代理模式的好处.在我看来,代理模式最 ...

  8. linux系统必学-部分链接

    vi操作笔记 vim操作笔记 好网站,临时收藏  SEO十万个为什么 9RIA.com天地会--中国最大的专业Flash论坛 ===互联网=============================== ...

  9. git与github的使用

    git和github是两个完全不同的概念,就好比如雷锋与雷峰塔的关系. git是一个版本管理工具,用来更好的管理你的程序,比如你原来提交过的内容,以后虽然修改了,但是通过git这个工具, 可以把你原来 ...

  10. Linux_Ununtu 16.04 的下载安装并部署.Net Core 网站

    第一次接触Linux也难免有些懵逼,因为公司项目必须用.Net Core 开发一个后端服务应用:第一次用Linux给我的感觉就像在用2000年的手机一样:没用智能的操作:让人崩溃的用户体验.说多了都是 ...