【狂神說】Docker(三) - 高階進階

oneSeventeenCode發表於2020-12-06

本文章僅個人學習筆記,內容來源b站up主:遇見狂神說

Docker Compose

簡介

在這裡插入圖片描述在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
第3P Compose 安裝https://www.bilibili.com/video/BV1kv411q7Qc?p=3

安裝

看官方文件
在這裡插入圖片描述
1、下載

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2、授權

sudo chmod +x docker-compose

3、檢視版本

docker-compose version

第4P Compose 初體驗https://www.bilibili.com/video/BV1kv411q7Qc?p=3

體驗

官方文件:https://docs.docker.com/compose/gettingstarted/

1、建立資料夾 composetest

$ mkdir composetest
$ cd composetest

2、建立 app.py

$ vim app.py

import time

import redis
from flask import Flask

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

def get_hit_count():
    retries = 5
    while True:
        try:
            return cache.incr('hits')
        except redis.exceptions.ConnectionError as exc:
            if retries == 0:
                raise exc
            retries -= 1
            time.sleep(0.5)

@app.route('/')
def hello():
    count = get_hit_count()
    return 'Hello World! I have been seen {} times.\n'.format(count)

3、建立 requirements.txt

$ vim requirements.txt

flask
redis

4、建立 Dockerfile

$ vim Dockerfile

FROM python:3.7-alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories 
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask", "run"]

5、建立 docker-compose.yml

$ vim docker-compose.yml

version: "3.8"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

6、啟動

$ docker-compose build
$ docker-compose up

7、停止

在這裡插入圖片描述
在這裡插入圖片描述
8、小結
在這裡插入圖片描述
第5P Compose 初體驗https://www.bilibili.com/video/BV1kv411q7Qc?p=3

yaml 規則

docker-compose.yaml 核心!
官方文件:https://docs.docker.com/compose/compose-file/

第6P 使用Compose一鍵部署WP部落格https://www.bilibili.com/video/BV1kv411q7Qc?p=3

開源專案 - 部落格

官方文件:https://docs.docker.com/compose/wordpress/
1、建立檔案

$ mkdir my_wordpress
$ cd my_wordpress
$ vim docker-compose.yml

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}

2、啟動

# 前臺啟動
$ docker-compose up
# 後臺啟動
$ docker-compose up -d

第7P 實戰:自己編寫微服務上線https://www.bilibili.com/video/BV1kv411q7Qc?p=3

自己編寫微服務上線

1、編寫微服務專案(帶redis)
HelloController.java

@RestController
public class HelloController {

    @Autowired
    StringRedisTemplate redisTemplate;

    @GetMapping("/hello")
    public String hello(){
        Long views = redisTemplate.opsForValue().increment("views");
        return "hello:"+views;
    }
}

2、dockerfile構建映象

FROM java:8

COPY *.jar /app.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app.jar"]

3、docker-compose.yaml 編排專案

version: '3.3'
services:
  wengapp:
    build: .
    image: wengiapp
    depends_on:
      - redis
    ports:
    - "8080:8080"
  redis:
    image: "library/redis:alpine"

4、丟到伺服器 docker-compose up

在這裡插入圖片描述

總結:
在這裡插入圖片描述

第8P Compose 初體驗https://www.bilibili.com/video/BV1kv411q7Qc?p=3
第9P Compose 初體驗https://www.bilibili.com/video/BV1kv411q7Qc?p=3
第10P Compose 初體驗https://www.bilibili.com/video/BV1kv411q7Qc?p=3

相關文章