📚Docker
【官网地址】:Empowering App Development for Developers | Docker
【开源地址】:Docker (github.com)
【镜像地址】:Explore Docker’s Container Image Repository | Docker Hub
【官方文档】:Docker Documentation
开源的应用容器引擎
📕前言
-
Dockerfile Docker自动化脚本,通过它可以自动化配置容器和安装镜像。 -
Image Docker镜像,部署的应用程序以及它所关联的所有库或软件,可以用于创建容器Container。 -
Container Docker容器,运行Image部署的应用程序的容器。 -
Volumes 数据卷,使容器之间的数据可以同步到本地服务中。
开发者可以通过它打包他们的应用和依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口。
它不会去模拟底层的硬件,只为一个应用提供完全隔离的运行环境,可以在环境中配置不同的工具软件,并且不同环境之间相互不影响。
💡部署应用
-
创建Dockerfile -
通过FROM 指定基础镜像 # python 镜像应用 3.8-slim-buster 版本号
FROM python:3.8-slim-buster
-
通过WORKDIR 指定之后命令默认工作路径 WORKDIR /app
-
通过COPY 将所有的程序拷贝到Docker镜像中 # 目标路径 . 代表WORKDIR指定的默认工作路径
# 本地路径 . 代表程序根目录下所有的文件
COPY . .
# COPY <本地路径> <目标路径>
-
通过RUN 运行任意的shell command RUN pip3 install -r requirements.txt
-
通过CMD 指定Docker容器运行后要执行的命令 CMD ["python3", "app.py"]
# CMD ["可执行文件", "参数1", "参数2" ...]
-
使用docker build 创建镜像 docker build -t my-finance .
-
创建Volume docker volume create my-finance-data
-
使用docker run 启动容器 docker run -p 80:5000 -d my-finance
💡管理多个容器
-
创建docker-compose.yml -
通过services 定义多个容器 version: "3",
services:
web:
build: .
ports:
- "80:5000"
db:
image: "mysql"
environment:
MYSQL_DATABASE: finance-db
MYSQL_ROOT_PASSWORD: secret
volumes:
- my-finance-data:/var/lib/mysql
volumes:
my-finance-data: {}
-
使用docker bulid 创建镜像
🌳Docker Command
- 列举所有的容器:
docker ps - 停止容器:
docker stop <容器 ID> - 重启容器:
docker restart <容器 ID> - 删除容器:
docker rm <容器 ID> - 启动并运行所有容器:
docker compose up [-d] - 停止并删除所有容器:
docker compose down [--volumes] - 启动远程Shell:
docker exec -it <容器 ID> /bin/bash - 创建数据卷:
docker volume create <数据卷名称> - 打印日志:
docker logs
?查询版本显示连接错误
docker version
error during connect: This error may indicate that the docker daemon is not running.
?WSL 2 installation is incomplete.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gAB8LxlN-1643620105431)(image-20220130223813417.png)]
参考文献
- Docker 10分钟快速入门_哔哩哔哩_bilibili
|