-
-
docker快速創建輕量級的可移植的容器✓ -
docker&flask快速構建服務接口
-
docker&uwsgi高性能WSGI服務器生產部署必備
-
docker&gunicorn高性能WSGI服務器生產部署必備
-
docker&nginx&gunicorn實現負載均衡
-
docker&ngxtop並實時解析nginx日志
-
docker&supervisor監控你的服務
-
docker&pyinstaller兩步法構建小體積容器
-
locust對你的服務做高並發測試
-
postman熱門的API調試工具
-
-
docker安裝
-
本教程是基於redhat linux服務器的
-
介紹
-
docker為應用程序提供了隔離的運行空間:
-
鏡像作為基礎,一個鏡像可以創建多個容器,方便服務的快速部署和遷移;
-
每個容器內都包含一個獨享的完整用戶環境空間,並且一個容器內的變動不會影響其他容器的運行環境;
-
在線安裝
-
阿里雲安裝docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
-
啟動服務
# 先切換到root用戶, 依次執行以下命令
systemctl enable docker # 開機自動啟動docker
systemctl start docker # 啟動docker
systemctl restart docker # 重啟dokcer
離線安裝
-
打開網頁選擇對應的docker版本
https://download.docker.com/linux/static/stable/x86_64/
-
上傳到服務器(我們選擇的版本是docker-rootless-extras-20.10.5.tgz)
tar -xvf docker-20.10.5.tgz
cp docker/* /usr/bin/
dockerd &
docker -v
刪除docker
-
查詢當前系統安裝了哪些docker包
yum list installed | grep docker
yum remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64 docker-ce-rootless-extras.x86_64
docker -v
構建鏡像
-
使用開源鏡像
docker pull alpine # 輕量級,但無法執行python打包的exe文件
docker pull debian:buster-slim # 體積也比較小。可以執行python打包的exe文件 -
構建你的第一個鏡像
具體的服務構建可以建下篇內容#docker&flask快速構建服務接口#。
-
驗證flask服務的有效性
# flask_test.py為我們構造的flask服務
python3 flask_test.py即可啟動服務
wget -O apirsult.txt "http://127.0.0.1:2222/test?name=xiaoming&pwd=123-
依Dockerfile文件build個人Docker鏡像及服務的有效性
%%writefile Dockerfile
FROM python/3.8
WORKDIR /home/myfirstapi/
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
COPY . .
RUN pip install -r requirements.txt -q -i https://pypi.tuna.tsinghua.edu.cn/simple && \
rm -rf /var/cache/apk/*
expose 2222
CMD ["python3", "flask_test.py"]
# docker構建鏡像並啟動服務
docker build -t test/api:1.0 .
docker run -d -p 2222:2222 test/api:1.0
wget -O apirsult.txt "http://127.0.0.1:2222/test?name=xiaoming&pwd=123" -
docker常用命令
-
基本使用,可以應用docker構建容器了
-
容器的基本應用,涉及到鏡像及容器構建,容器查看相關內容。
-
# 構建名稱為test/api,版本為2.0的鏡像
docker build -t test/api:2.0 .
# 通過鏡像test/api創建一個后台運行的容器,且映射端口4050
docker run -d -p 4050:4050 test/api:2.0
# 進入容器內部交互式命令空間的兩種方式
docker run -it test/api:2.0 /bin/bash
docker container exec -it container-id /bin/bash
# 查看並停止容器
docker ps
docker stop ontainer-id
# 查看日志
docker logs -f --tail 100 container-id
or
vim /var/lib/docker/containers/容器ID/容器ID-json.log
# 查看端口
docker port container-id
-
溜溜的,玩轉docker了可以
-
涉及到容器遷移,修改及數據卷相關內容
-
# 與容器中文件交互
docker cp container-id:/root/test.txt /root/
docker cp /root/ container-id:/root/test.txt
# 查看鏡像中的文件
docker exec container-id ls -lth
docker exec container-id cat file.py
# 查看容器的進程情況
docker top container-id
docker stats container-id
# 保存修改的容器為鏡像
docker commit -a "my_name" -m "install xxx" container-id image_name
# 保存鏡像
docker save -o xxx.tar 鏡像名稱
# 加載鏡像名
docker load --input test.tar
# 修改鏡像名稱
docker tag [鏡像id] [新鏡像名稱]:[新鏡像標簽]
# 數據卷-使服務器和容器內對應的文件同步更新
docker run -d -p 4001:4000 --name web -v /home/linux:/home/docker/ test/api:1.0
-
掀桌了了,快速刪除所有鏡像及容器
-
快速停止,刪除所有的容器,鏡像
-
# 查看鏡像概覽
docker system df
# 刪除所有docker中所有未使用的數據
docker system prune -a
# 停止容器內的所有進程
docker pause container-id
# 刪除全部容器
docker kill $(docker ps -a -q)
# 刪除所有容器
docker rm $(docker ps -a -q)
# 刪除所有鏡像
docker rmi $(docker images -q)