Docker学习大纲

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

1. 容器(Containers)

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

命令:

bash 复制代码
docker run hello-world

解析:

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

2. 镜像(Images)

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

命令:

bash 复制代码
docker build -t my-image .

解析:

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

3. Dockerfile

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

示例:

Dockerfile 复制代码
# Use an official Python runtime as a parent image
FROM python:3.7-slim

解析:

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

4. 端口映射(Port Mapping)

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

命令:

bash 复制代码
docker run -p 4000:80 my-image

解析:

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

5. 数据卷(Volumes)

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

命令:

bash 复制代码
docker run -v /path/on/host:/path/in/container my-image

解析:

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

6. Docker Compose

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

命令:

bash 复制代码
docker-compose up

解析:

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

7. 网络(Networking)

容器间的网络通信。

命令:

bash 复制代码
docker network create my-network

解析:

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

8. Docker Hub

Docker 的公共镜像仓库。

命令:

bash 复制代码
docker push my-image

解析:

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

9. 容器生命周期

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

命令:

bash 复制代码
docker start my-container
docker stop my-container
docker rm my-container

解析:

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

10. 容器日志(Logs)

查看容器的输出。

命令:

bash 复制代码
docker logs my-container

解析:

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

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

1. Docker Swarm

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

初始化 Swarm 集群

bash 复制代码
docker swarm init

解析:

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

添加工作节点

bash 复制代码
docker swarm join --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c 192.168.99.100:2377

解析:

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

部署服务

bash 复制代码
docker service create --replicas 1 --name helloworld alpine ping docker.com

解析:

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

2. Docker Registry

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

运行本地 Docker Registry

bash 复制代码
docker run -d -p 5000:5000 --name registry registry:2

解析:

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

推送镜像到本地 Registry

bash 复制代码
docker tag my-image localhost:5000/my-image
docker push localhost:5000/my-image

解析:

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

3. Docker Stack

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

部署 Stack

bash 复制代码
docker stack deploy -c docker-compose.yml mystack

解析:

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

4. Docker Secrets

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

创建一个 Secret

bash 复制代码
echo "my_secret" | docker secret create my_secret -

解析:

创建一个名为 my_secret 的 Docker Secret。

使用 Secret

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

示例:

yml 复制代码
services:
  myservice:
    image: my_image
    secrets:
      - my_secret

解析:

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

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

相关推荐
❀͜͡傀儡师1 小时前
docker-compose一键部署Hadoop集群
hadoop·docker·容器
老蒋新思维2 小时前
紧跟郑滢轩,以 “学习力 +” 驱动 AI 与 IP 商业变革
网络·人工智能·学习·tcp/ip·企业管理·创始人ip·创客匠人
java_logo2 小时前
BUSYBOX Docker 容器化部署指南
java·运维·python·nginx·docker·容器·运维开发
做cv的小昊3 小时前
科研论文PPT绘图技巧:绘制任意曲线三角形(胖三角形)并制作效果对比图
经验分享·笔记·学习·微软·ai绘画·数据可视化
小呀小萝卜儿3 小时前
2025-11-14 学习记录--Python-使用sklearn+检测 .csv 文件的编码+读取 .csv 文件
python·学习
月下倩影时4 小时前
视觉学习篇——模型推理部署:从“炼丹”到“上桌”
人工智能·深度学习·学习
河铃旅鹿4 小时前
Android开发-java版:SQLite数据库
android·数据库·笔记·学习·sqlite
Linux运维技术栈5 小时前
从Docker到宝塔:Magento2 2.3.5 安装全流程踩坑与成功实践
运维·adobe·docker·容器·magento2
源码梦想家5 小时前
智能能源与智慧电网生态:构建高效、安全与绿色的未来能源体系
eureka