Docker笔记

文章目录

    • Docker
      • 前言
      • 部署应用
      • 管理多个容器
      • Docker Command
      • ❌查询版本显示连接错误
      • ❌WSL 2 installation is incomplete.
      • ❌Service is not running
      • ❌An unexpected error occurred
    • 参考文献

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操作系统的机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口。

它不会去模拟底层的硬件,只为一个应用提供完全隔离的运行环境,可以在环境中配置不同的工具软件,并且不同环境之间相互不影响。

部署应用

  1. 创建Dockerfile

  2. 通过FROM指定基础镜像

    # python 镜像应用 3.8-slim-buster 版本号
    FROM python:3.8-slim-buster
    
  3. 通过WORKDIR指定之后命令默认工作路径

    WORKDIR /app
    
  4. 通过COPY将所有的程序拷贝到Docker镜像中

    # 目标路径 . 代表WORKDIR指定的默认工作路径
    # 本地路径 . 代表程序根目录下所有的文件
    COPY . .
    # COPY <本地路径> <目标路径>
    
  5. 通过RUN运行任意的shell command

    RUN pip3 install -r requirements.txt
    
  6. 通过CMD指定Docker容器运行后要执行的命令

    CMD ["python3", "app.py"]
    # CMD ["可执行文件", "参数1", "参数2" ...]
    
  7. 使用docker build创建镜像

    docker build -t my-finance .
    # -t 指定镜像名字
    # . 指定Dockerfile在当前目录下
    
  8. 创建Volume

    docker volume create my-finance-data
    # docker volume create <容器名称>
    
  9. 使用docker run启动容器

    docker run -p 80:5000 -d my-finance
    # -p 将容器的端口映射到本机主机上
    # 80 本机端口
    # 5000 容器端口
    # -d 容器后台运行
    # -v 指定volume挂载到容器哪个路径 -v my-finance-data:/etc/finance
    

管理多个容器

  1. 创建docker-compose.yml

  2. 通过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: {}
    
  3. 使用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.

Docker笔记_第1张图片

  • 更新WSL2版本【下载】

❌Service is not running

Docker笔记_第2张图片
Docker笔记_第3张图片
unable to start docker desktops service:2

❌An unexpected error occurred

Docker笔记_第4张图片
开启 Hyper-V

  1. https://blog.csdn.net/m0_47256162/article/details/127864064
  2. https://blog.csdn.net/mythest/article/details/92999646
    Docker笔记_第5张图片

参考文献

  1. Docker 10分钟快速入门_哔哩哔哩_bilibili

你可能感兴趣的:(容器Docker,docker,容器,运维)