文章目录
📚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 commandRUN pip3 install -r requirements.txt
-
通过
CMD
指定Docker容器运行后要执行的命令CMD ["python3", "app.py"] # CMD ["可执行文件", "参数1", "参数2" ...]
-
使用
docker build
创建镜像docker build -t my-finance . # -t 指定镜像名字 # . 指定Dockerfile在当前目录下
-
创建Volume
docker volume create my-finance-data # docker volume create <容器名称>
-
使用
docker run
启动容器docker run -p 80:5000 -d my-finance # -p 将容器的端口映射到本机主机上 # 80 本机端口 # 5000 容器端口 # -d 容器后台运行 # -v 指定volume挂载到容器哪个路径 -v my-finance-data:/etc/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 export <容器 ID>> <容器文件>
- 导入容器:
docker import <容器文件>
- 查看镜像:
docker images
- 删除镜像:
docker image rm <镜像 ID>
- 在运行的容器里面运行命令:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
❌查询版本显示连接错误
docker version
error during connect: This error may indicate that the docker daemon is not running.
- Docker Desktop 运行错误
❌WSL 2 installation is incomplete.
- 更新WSL2版本【下载】
❌Service is not running
unable to start docker desktops service:2
❌An unexpected error occurred
开启 Hyper-V
- https://blog.youkuaiyun.com/m0_47256162/article/details/127864064
- https://blog.youkuaiyun.com/mythest/article/details/92999646