docker命令

Docker 命令回顾

docker run 是创建并启动容器的核心命令,常用参数包括 -itd(交互式终端后台运行)、--name(指定容器名称)、-p(端口映射)。例如:

bash 复制代码
docker run -itd --name my_container -p 8080:80 nginx

CMDENTRYPOINT 是 Dockerfile 中定义容器启动行为的指令:

  • CMD 提供默认执行命令,可被 docker run 后的参数覆盖。
  • ENTRYPOINT 指定固定命令,docker run 的参数会追加到其之后。

Docker 网络模式

桥接模式(默认)

  • 通过 docker0 虚拟网桥连接容器与宿主机。

  • 端口映射示例:

    bash 复制代码
    -p 80:8080  # 宿主机80映射到容器8080
    -P          # 随机分配宿主机端口(32768+)

Host 模式

  • 容器直接使用宿主机网络栈,无隔离:

    bash 复制代码
    docker run --net=host nginx

None 模式

  • 容器无网络接口,仅限本地访问:

    bash 复制代码
    docker run --net=none alpine

Container 模式

  • 共享指定容器的网络命名空间:

    bash 复制代码
    docker run --net=container:centos01 centos:yum

持久化与数据卷

数据卷实现容器数据持久化,避免容器删除后数据丢失:

  • 挂载宿主机目录

    bash 复制代码
    docker run -v /host/path:/container/path nginx
  • 匿名卷 (自动创建):

    bash 复制代码
    docker run -v /container/path nginx
  • 命名卷 (推荐管理):

    bash 复制代码
    docker volume create my_volume
    docker run -v my_volume:/container/path nginx

Dockerfile 镜像制作

基础 Dockerfile 示例:

dockerfile 复制代码
FROM centos:yum
RUN yum install -y nginx
COPY index.html /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

关键指令:

  • FROM:基础镜像。
  • RUN:执行安装命令。
  • COPY:复制文件到镜像。
  • EXPOSE:声明容器端口。
  • CMD/ENTRYPOINT:启动命令。

实践任务清单

  1. 命令练习

    • 创建、启动、停止、删除容器。
    • 使用 -p-P 测试端口映射。
  2. 网络模式验证

    • 对比桥接、Host、None 模式的网络差异。
    • 测试 Container 模式的共享网络效果。
  3. 数据卷操作

    • 挂载宿主机目录与命名卷,验证数据持久性。
  4. 镜像构建

    • 编写 Dockerfile 定制 Nginx 镜像,包含自定义页面。
  5. ELK 环境部署

    • 确保虚拟机资源(20G 磁盘 + 足够内存)。
    • 使用 Docker Compose 编排 Elasticsearch、Logstash、Kibana 容器。
相关推荐
张忠琳8 小时前
【containerd 2.1.8】(Part 1)containerd 2.1.8 超深度源码分析 — 总体架构与模块全景
云原生·kubernetes·containerd
真实的菜10 小时前
微服务注册配置中心终极选型:2026指南
微服务·云原生·架构
与海boy17 小时前
docker compose minio
docker·容器·eureka
星辰徐哥17 小时前
云原生核心特性:容器化、微服务与DevOps的通俗解读
微服务·云原生·devops
武子康18 小时前
调查研究-167 Docker Compose 详解:从单容器到多服务编排的工程化入口
运维·docker·云原生·容器·kubernetes·k8s·docker-compose
heimeiyingwang18 小时前
【架构实战】分布式会话:从Session到JWT的演进
微服务·云原生·架构
DolphinScheduler社区21 小时前
Apache DolphinScheduler 3.4.2 正式发布!新增 Amazon EMR Serverless 插件,增强监控与补数据能力
大数据·云原生·serverless·apache·海豚调度·版本发版
heimeiyingwang1 天前
【架构实战】注册中心选型:Nacos vs Eureka vs Consul
微服务·云原生·架构
java_cj1 天前
阅读 k8s 源码的准备工作
云原生·容器·kubernetes
鹤落晴春2 天前
【K8s】Pod调度、configMaps
云原生·容器·kubernetes