• Docker学习大纲


    Docker 是一个用于自动部署应用程序在轻量级容器中的平台。下面列出一些 Docker 的基础和必知概念。

    1. 容器(Containers)

    容器是独立的应用程序运行环境。

    命令:

    docker run hello-world
    
    • 1

    解析:

    该命令会从 Docker Hub 下载一个叫做 “hello-world” 的镜像,并运行一个容器。

    2. 镜像(Images)

    镜像是包含有文件和应用程序依赖的轻量级包。

    命令:

    docker build -t my-image .
    
    • 1

    解析:

    构建一个 Docker 镜像,并给它标记为 “my-image”。

    3. Dockerfile

    Dockerfile 是一系列指令,用于定义如何创建一个 Docker 镜像。

    示例:

    # Use an official Python runtime as a parent image
    FROM python:3.7-slim
    
    • 1
    • 2

    解析:

    这里使用官方的 Python 3.7 镜像作为基础镜像。

    4. 端口映射(Port Mapping)

    将容器的端口映射到宿主机。

    命令:

    docker run -p 4000:80 my-image
    
    • 1

    解析:

    这个命令将容器的 80 端口映射到宿主机的 4000 端口。

    5. 数据卷(Volumes)

    用于数据持久化和容器之间共享数据。

    命令:

    docker run -v /path/on/host:/path/in/container my-image
    
    • 1

    解析:

    这将主机上的 /path/on/host 目录挂载到容器内的 /path/in/container

    6. Docker Compose

    用于定义和运行多容器 Docker 应用程序。

    命令:

    docker-compose up
    
    • 1

    解析:

    使用 docker-compose.yaml 文件启动服务。

    7. 网络(Networking)

    容器间的网络通信。

    命令:

    docker network create my-network
    
    • 1

    解析:

    创建一个名为 my-network 的新网络。

    8. Docker Hub

    Docker 的公共镜像仓库。

    命令:

    docker push my-image
    
    • 1

    解析:

    将名为 my-image 的镜像推送到 Docker Hub。

    9. 容器生命周期

    理解 start、stop、kill、rm 等命令。

    命令:

    docker start my-container
    docker stop my-container
    docker rm my-container
    
    • 1
    • 2
    • 3

    解析:

    分别用于启动、停止和删除名为 my-container 的容器。

    10. 容器日志(Logs)

    查看容器的输出。

    命令:

    docker logs my-container
    
    • 1

    解析:

    查看名为 my-container 的容器的日志输出。

    【提醒】以上只是 Docker 的基础和必须了解的概念,更多高级的特性和用法(如 Swarm、Docker Registry 等)也是非常重要的。

    1. Docker Swarm

    Docker Swarm 是 Docker 的原生集群管理工具。它可以帮助你管理一个或多个 Docker 主机,并使它们作为一个单一的虚拟 Docker 主机。

    初始化 Swarm 集群

    docker swarm init
    
    • 1

    解析:

    初始化一个新的 Swarm 集群并使当前 Docker 主机成为 Swarm 管理器。

    添加工作节点

    docker swarm join --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c 192.168.99.100:2377
    
    • 1

    解析:

    将一个 Docker 主机加入到 Swarm 集群作为一个工作节点。你需要从 docker swarm init 输出中获取令牌和地址。

    部署服务

    docker service create --replicas 1 --name helloworld alpine ping docker.com
    
    • 1

    解析:

    创建一个新的服务 helloworld,该服务运行 alpine 镜像并执行 ping docker.com

    2. Docker Registry

    Docker Registry 是用于存储 Docker 镜像的服务器。

    运行本地 Docker Registry

    docker run -d -p 5000:5000 --name registry registry:2
    
    • 1

    解析:

    运行一个本地的 Docker Registry,并将其绑定到端口 5000。

    推送镜像到本地 Registry

    docker tag my-image localhost:5000/my-image
    docker push localhost:5000/my-image
    
    • 1
    • 2

    解析:

    标记 my-image 并将它推送到本地 Docker Registry。

    3. Docker Stack

    Stack 是一个定义了多个服务、网络和卷的 Docker Compose 文件。

    部署 Stack

    docker stack deploy -c docker-compose.yml mystack
    
    • 1

    解析:

    使用 docker-compose.yml 文件部署一个新的 Stack。

    4. Docker Secrets

    Docker Secrets 主要用于安全地管理敏感信息。

    创建一个 Secret

    echo "my_secret" | docker secret create my_secret -
    
    • 1

    解析:

    创建一个名为 my_secret 的 Docker Secret。

    使用 Secret

    在服务定义或堆栈定义中使用 Secret。

    示例:

    services:
      myservice:
        image: my_image
        secrets:
          - my_secret
    
    • 1
    • 2
    • 3
    • 4
    • 5

    解析:

    这会将 my_secret 挂载到名为 myservice 的服务的 /run/secrets/my_secret 路径下。

    以上是 Docker 的一些高级特性和用法。每个高级功能都有更多的参数和配置选项,因此建议查阅 Docker 的官方文档进行更深入的学习。

  • 相关阅读:
    服务器密码以及用户名怎么修改
    RFID-科技的“隐秘耳语者”
    判断数据库中表是否存在
    c++/VS XP系统 无法定位程序输入点WSAPoll于动态链接库ws2_32.dll解决方案
    【MATLAB】利用字符串模拟运算式
    aix操作系统管子san存储卷
    (学习日记)2022.7.29
    【youcans 的图像处理学习课】总目录
    JavaScript 案例二 --typeof 与 instanceof
    java毕业设计超市购物系统mybatis+源码+调试部署+系统+数据库+lw
  • 原文地址:https://blog.csdn.net/m0_57021623/article/details/133000276