文章分成
一、shell快速完成安裝docker
二、建立一個Docker版的Node.js程式,並完成部署與分享
三、利用ENTRYPOINT進行指定的程序
四、建立一個Nginx的Web服務器
二、建立一個Docker版的Node.js程式,並完成部署與分享
三、利用ENTRYPOINT進行指定的程序
四、建立一個Nginx的Web服務器
五、建立Python3.8的開發環境
六、建立PostgreSql資料庫
七、使用pgadmin4管理PostgreSQL資料庫
八、建立自己的快取Redis
六、建立PostgreSql資料庫
七、使用pgadmin4管理PostgreSQL資料庫
八、建立自己的快取Redis
九、Docker Compose
十、Flask+Redis多服務開發部署
十一、建立Vue開發環境
十、Flask+Redis多服務開發部署
十一、建立Vue開發環境
九、Docker Compose
觀念:
Docker Compose 的安裝與使用
官網:
GitHub
實戰:
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
解除安裝
$ sudo rm /usr/local/bin/docker-compose
開發Python Web 應用(Flask)
建立資料夾work
$ mkdir work
進入資料夾work
$ cd work
建立main.py
$ pico main.py
檔案名稱:main.py
檔案內容:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'How are you! Are you OK?'
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True, port=5000)
建立requirements.txt
$ pico requirements.txt
檔案名稱:requirements.txt
檔案內容:
flask==1.1.2
建立 Dockerfile
$pico Dockerfile
檔案名稱:Dockerfile
檔案內容:
#使用python:3.8-alpine版本
FROM python:3.8.3-alpine3.12
#將當前目錄映射到容器內/app目錄
ADD . /app
#設置/app為工作目錄
WORKDIR /app
#安裝python 需求包
RUN pip install -r requirements.txt
#啟動flask
CMD python main.py
建立flask image
$sudo docker build -t mark2470mark/myweb:0.1
$sudo docker image ls
$curl http://127.0.0.1:8088
刪除所有不用的容器
$sudo docker container prune
整個過程如下:
文件版本: https://docs.docker.com/compose/compose-file/
建立 docker-compose.yml
$pico docker-compose.yml
檔案名稱:docker-compose.yml
檔案內容:
version: '3.8'
services:
myweb:
build: .
ports:
- "8088:5000"
volumes:
- .:/app
$sudo docker-compose up
容器重新編譯後啟動
$sudo docker-compose up --build
容器重新編譯後啟動
$sudo docker-compose up -d --build
查詢容器狀態
$sudo docker-compose ps
執行myweb容器內的命令
查看容器輸出日誌
(1)使用docker-compose
$sudo docker-compose logs -f myweb
(2)使用docker
$sudo docker logs -f work_myweb_1
容器停止
$sudo docker-compose stop
容器停止+消除(容器+網路)
$sudo docker-compose down
容器停止+消除(容器+網路+image)
$sudo docker-compose down --rmi all
十、Flask+Redis多服務開發部署
觀念:
Docker Compose多服務開發部署(flask+Redis)
服務接構設計:
client<----> web(flask:myweb) <---->db(redis:myredis)
實戰:
0.建立工作目錄並進入工作目錄
$mkdir work10
$cd work10
1.建立main.py
$pico main.py
檔案名稱:main.py
檔案內容:
from flask import Flask
from redis import Redis
app=Flask(__name__)
redis=Redis(host='myredis',port=6379)
@app.route('/')
def hello():
redis.incr('hits')
return 'How are you!! We have met %s times. ' % redis.get('hits')
if __name__=="__main__":
app.run(host="0.0.0.0", debug=True, port=5000)
2.建立 requirements.txt
$pico requirements.txt
檔案名稱:requirements.txt
檔案內容:
flask==1.1.2
redis==3.5.3
3.建立Dockerfile
$pico Dockerfile
檔案名稱:Dockerfile
檔案內容:
#使用python:3.8-alpine版本
FROM python:3.8.3-alpine3.12
#將當前目錄映射到容器內/app目錄
ADD . /app
#設置/app為工作目錄
WORKDIR /app
#安裝python 需求包
RUN pip install -r requirements.txt
#啟動flask
CMD python main.py
4.建立docker-compose.yml
$pico docker-compose.yml
檔案名稱:docker-compose.yml
檔案內容:
version: '3.8'
services:
myweb:
build: .
ports:
- "8088:5000"
volumes:
- .:/app depends_on:
- myredis
myredis:
image: redis:6.0.5-alpine
5.容器重新編譯後啟動
容器啟動
$sudo docker-compose up
容器重新編譯後啟動
$sudo docker-compose up --build
容器重新編譯後啟動
$sudo docker-compose up -d --build
檢查image$sudo docker image ls
查詢容器狀態$sudo docker-compose ps
確認localhost打開的port
$netstat -nltp
測試web
$curl http://127.0.0.1:8088
$sudo docker-compose run myweb top
容器停止
$sudo docker-compose stop
容器停止+消除(容器+網路)
$sudo docker-compose down
容器停止+消除(容器+網路+image)
$sudo docker-compose down --rmi all
十一、建立Vue開發環境
觀念:
1.Docker Node.js image的使用
2.安裝Vue Cli4等工具包
官網:
實戰:
0.建立工作目錄並進入工作目錄
$mkdir work11
$cd work11
1.取得Ubuntu image
$sudo docker pull node:12.20.1-buster
$sudo docker image ls
$mkdir src
2.建立Dockerfile
$pico Dockerfile
檔案名稱:Dockerfile
檔案內容:
FROM node:12.20.1-buster
ADD ./src /app
WORKDIR /app
ENV DEBCONF_NOWARNINGS yes
RUN apt-get update -y && \
apt-get upgrade -y && \
apt-get install -y \
build-essential -y \
curl \
nmap \
git \
nano \
&& rm -rf /var/lib/apt/lists/*
RUN npm install -g @vue/cli
3.建立image並啟動container
$sudo docker image build -t mark2470mark/vuecli4:0.1 .
$sudo docker image ls
$sudo docker container run -it -d mark2470mark/vuecli4:0.1 --name vuecli4 -v `pwd` /src:/app -p 8080:8080
$sudo docker container ls
$sudo docker exec -it vuecli4 /bin/bash
資料來源:
1.Docker入門教學
2.Docker官網
3.在Ubuntu上安裝Docker Engine
4.解决docker:pull access denied for hello-wrold, repository does not exist or may require 'docker login'.
5.Ubuntu Linux 安裝 Docker 步驟與使用教學
6.Ubuntu Docker 安装
7.Dockerfile 中的 ENTRYPOINT
8.Nginx.org
9.Docker基础命令(一)
10.Error response from daemon: cannot stop container
2.Docker官網
3.在Ubuntu上安裝Docker Engine
4.解决docker:pull access denied for hello-wrold, repository does not exist or may require 'docker login'.
5.Ubuntu Linux 安裝 Docker 步驟與使用教學
6.Ubuntu Docker 安装
7.Dockerfile 中的 ENTRYPOINT
8.Nginx.org
9.Docker基础命令(一)
10.Error response from daemon: cannot stop container
影片:
沒有留言:
張貼留言