-
系列其余内容
docker 疾速创立轻量级的可移植的容器✓- docker&flask 疾速构建服务接口
- docker&uwsgi 高性能 WSGI 服务器生产部署必备
- docker&gunicorn 高性能 WSGI 服务器生产部署必备
- docker&nginx&gunicorn 实现负载平衡
- docker&ngxtop 并实时解析 nginx 日志
- docker&supervisor 监控你的服务
- docker&pyinstaller 两步法构建小体积容器
- locust 对你的服务做高并发测试
- postman 热门的 API 调试工具
- docker+flask+gunicorn+nginx+pyinstaller+supervisor 搭建一个轻量级满足高并发性能的服务
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)