2021年9月21日 星期二

 Docker Command-line reference






docker + 管理的物件(比如容器,鏡像) +
具體操作(比如創建,啟動,停止,刪除)
例如
docker image pull nginx 拉取一個叫nginx的docker image鏡像 docker container stop web 停止一個叫web的docker container容器



docker version

docker info



docker container -help (container可以進行那些操作)

docker container run <image name>

docker container run -d -p 80:80 --name <webhost> <image name>


--name <webhost> 命名

--detach,--publish


docker container ps (當前運行容器)

docker container ls (同上)

docker container ps -a (所有容器包括停止)

docker container ls -a (同上)


docker container stop <name or ID> docker container rm <name or ID>

docker container rm <name or ID> -f (運行中停止刪除)


docker image ls (docker 有幾個image檔)

docker image rm [options]{image[image]}



docker container stop $(docker container ls -q) 批次停止

docker container rm $(docker container ls -aq) 批次刪除


docker system prune -f 刪除以停止的容器

docker image  prune -f 刪除未使用image


創建一個容器並進入互動式模式

docker container run -it <name or ID> sh



已經背景運行裡呼叫command

-d 背景啟動

docker container run -d <name or ID>

docker container exec -it <name or ID> sh


從dockerhub上拉取 image

docker pull nginx

docker pull nginx:1.20.0


從Quay上拉取 image

docker pull quay.io/bitnami/nginx




image 的獲取

  • pull from registry (online) 從registry拉取

    • public(公有)
    • private(私有)
  • build from Dockerfile (online) 從Dockerfile構建
  • load from file (offline) 文件導入 (離線)


Dockerfile 使用比較複雜



docker build -f /path/to/a/Dockerfile -t shykes/myapp .

-f 引用檔案名稱
-t 命名


Python Flask

步驟一 :兩個檔案放在同一資料夾


app.py
from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello, World!'


Dockerfile 檔名
FROM python:3.9.5-slim

RUN pip install flask

WORKDIR /src
ENV FLASK=app.py

COPY app.py /src/app.py

EXPOSE 5000

CMD ["flask", "run", "-h", "0.0.0.0"]

 步驟二 :不同方式呼叫網頁


python 方式呼叫網頁

建立虛擬環境
python -m venv env
.\env\Scripts\activate #激活環境
pip install flask

$env:FLASK_APP="app.py" #powershell 設定環境變數

flask run #執行後就能在網頁看到輸出

http://127.0.0.1:5000/



docker 方式呼叫網頁

docker build -t flask-demo .
docker container run -d -p 5000:5000 flask-demo
http://127.0.0.1:5000/





0 意見:

張貼留言

標籤

總網頁瀏覽量

Translate

Popular Posts

Blog Archive