[Day9] - Docker Compose 介绍与实作

在上一篇我们学习了 Docker 的基础操作,相信大家都可以感觉到 Docker 惊人的方便性吧!
我自己过去,在还没有使用到Docker的时候,公司要灌新主机的时候,都会花上许多时间,不同的OS版本,以及还有很多相依性的问题,有时候底层的设定没有设定好,程序就不能顺利的启动,真的会花上不少时间。但有了Docker之後,真的对开发者来说是一个福音,让开发者可以花更少的时间设定/管理环境,可以把时间花在更有价值的事情上。

好了话不多说接下来要来介绍今天的主题 -- Docker Compose

前言

昨天的文章中,我们成功开启了一个 Docker container,那大家有没有想过,如果同时有多个Container要同时开启的话,要怎麽做呢?我们在架设一个网站服务时,除了要启动网站本身的程序,另外通常也会需要资料库(除非你不的服务是不需要储存查找资料)。那如果有一个服务是可以同时启动或是设定网站以及资料库的环境的话那就太棒了。而我们的 Docker Compose便是可以帮助我们处理这件事的好帮手~

Docker Compose 介绍

Docker Compose 定义多容器应用而开发的应用,透过编写Docker Compose 的yml档案,我们可以透过这文件来管理所有我们想要启动的 Docker 服务。

Docker Compose 安装

参考官方网站进行安装

https://docs.docker.com/compose/install/

Docker Compose 操作

我们透过编写docker-compose.yml档案,同时管理网站以及资料库的 Docker服务,这边我们以 django 及 mysql 作为范例。可以参考下面之程序码

version: '3'

services:
  app:
    # docker build 的设定
    build:
      context: .
    #port 对应
    ports:
      - "8888:8888"
    #volumes 对应
    volumes:
      - ./app:/app
    #指令
    command: >
      sh -c "python manage.py runserver 0.0.0.0:8888"
      
  db:
    # mysql image 版本
    image: mysql:5.7
    # 是否自动启动
    restart: always
    # 环境变数设定
    environment:
      MYSQL_DATABASE: 'db'
      MYSQL_USER: 'admin'
      MYSQL_PASSWORD: 'admin'
      MYSQL_ROOT_PASSWORD: 12345678
    ports:
      - '3306:3306'

完成了 docker-compose.yml档案,我们在docker-compose.yml的资料夹中输入 docker-compose start 启动docker compose服务。

docker-compose start

我们可以看到,系统会建立并启动我们所指定的服务了~
是不是非常的方便呢!

在这边我们先为大家说明 Docker , Docker Compose 的基本操作,或许现在可能会觉得太多资讯量有点抓不到感觉,没关系一开始总是会需要熟悉的时间,之後我们会实际带大家进行专案的操作,相信那时大家都可以成为达人了~


<<:  【Day22】立即函式(IIFE)

>>:  奇数金字塔,你想得出来最佳解答吗?Ruby 30 天刷题修行篇第七话

[Python 爬虫这样学,一定是大拇指拉!] DAY23 - 实战演练:HTML Response - 抓取股票代码清单 (2)

开始前我简单带过一下我们这支爬虫 Beautiful soup 的用法好了: from bs4 im...

【从零开始的Swift开发心路历程-Day24】天气预报App实作Part3

昨天我们已经能把单一地点的天气资讯显示到手机App上面了,接着我们会利用UIButton让我们可以选...

为了转生而点技能-JavaScript,day20(简易Setter、Getter设定

Setter:存值。 **方法一:**set 属性名称(参数){} var wallet = { t...

课堂笔记 - 物联网概论 课後测验

课後测验 单选题 感知层(单选题) 1.下列哪一项不属於物联网的应用? A.洗衣机於电费最低时段自...

Day 19 | Livewire 实作 Todo List(一): 新增待办事项

先祝各位中秋节快乐~连假过後该收心了所以今天就来做一个待办清单吧!顺便熟悉一下 Livewire 的...