Docker学习后续

四、数据卷(挂载卷)

1.docker volume create 卷名 //创建卷(在宿主机上进行创建)

(如:docker volume create my_volume)

2.1.使用命令来挂载:docker run -d -v 主机目录:容器目录 镜像名称

(如:docker run -it -v /home/test01:/home centos /bin/bash(/bin/bash是可选的,取决于是否需要进入交互shell)

2.2.匿名挂载:docker run -d -P --name=nginxt01 -v /etc/nginx nginx(-v /etc/nginx: 创建一个匿名数据卷,将容器中的/etc/nginx目录挂载到宿主机上的一个随机位置(由Docker管理))

2.3.具名挂载:docker run -d -P --name=nginxt02 -v jumingguazai:/etc/nginx nginx (-v jumingguazai:/etc/nginx: 进行具名挂载,将名为"jumingguazai"的数据卷挂载到容器的/etc/nginx目录)

(如何确定是具名挂载还是匿名挂载:

-v 容器内路径 #匿名挂载

-v 卷名:容器内路径 #具名挂载

-v /宿主机路径:容器内路径 # 指定路径挂载)

3.docker volum ls #查看所有卷的情况

4.docker volume inspect 挂载卷名 //查看挂载卷的信息

5.docker volume rm 挂载卷名 //删除挂载卷

6.通过 -v 容器内路径 :ro rw 可以改变读写权限

ro readonly #只读

rw readwrite #可写可读

例: docker run -d --name nginx01 -v test01:/etc/nginx:ro nginx

docker run -d --name nginx01 -v test01:/etc/nginx:rw nginx

五、Dockerfile

1.Dockerfile 是一个用于定义(创建)容器镜像的文本文件。通过 Dockerfile,用户可以自动化地构建 Docker 容器镜像,而无需手动执行一系列命令。Dockerfile 包含了一系列指令,

这些指令告诉 Docker如何构建镜像,包括基础镜像、环境变量、复制文件、执行命令和暴露端口等。

(dockerfile的执行过程是从上到下按顺序执行的)

2.Dockerfile 的基本结构

一个典型的 Dockerfile 通常包含以下部分:

(1)FROM:指定基础镜像。这是构建 Dockerfile 的起点,可以选择一个已有的镜像作为基础。

(例如:FROM ubuntu:20.04)

(2)WORKDIR:设置工作目录,后续的操作(如 COPY、RUN)都会在这个目录下执行。

(例如:WORKDIR /app)

(3)COPY:将本地文件复制到镜像中。

(例如:COPY . .)

(4)RUN:在镜像中执行命令。通常用于安装软件包、配置环境等。

(例如:RUN apt-get update && apt-get install -y python3) //安装python包

(5)EXPOSE:声明容器运行时会暴露的端口。

(例如:EXPOSE 80)

(6)CMD:指定容器启动时运行的命令。

(例如:CMD "python3", "app.py"

完整的例子如下:

(

使用 Ubuntu 20.04 作为基础镜像

FROM ubuntu:20.04

设置工作目录

WORKDIR /app

安装 Python 和其他依赖

RUN apt-get update && apt-get install -y python3 python3-pip

复制当前目录下的所有文件到镜像中的 /app 目录

COPY . .

安装项目依赖

RUN pip3 install -r requirements.txt

暴露 80 端口

EXPOSE 80

启动应用

CMD "python3", "app.py"

)

3.docker容器、dockerfile、docker镜像的关系

dockerfile:用来构建镜像,新项目需要写此文件

docker镜像:通过dockerfile构建生成的镜像,最终发布和运行的产品。

docker容器:容器就是镜像运行起来提供服务的。

相关推荐
sbjdhjd20 分钟前
企业级 Tomcat (上):WEB 技术栈 + 架构演进 + 生产级安装部署
linux·运维·云原生·开源·tomcat·云计算·负载均衡
AI服务老曹30 分钟前
深度解析:基于 Docker 与边缘计算的 AI 视频管理平台 —— 实现 GB28181/RTSP 统一接入与源码交付的异构架构实践
人工智能·docker·边缘计算
羑悻的小杀马特1 小时前
拆解下一代LLMOps:从“能用”到“好用”,中间只隔了一个智能路由!
人工智能·docker·自动化·agent
张忠琳10 小时前
【containerd 2.1.8】(Part 1)containerd 2.1.8 超深度源码分析 — 总体架构与模块全景
云原生·kubernetes·containerd
真实的菜12 小时前
微服务注册配置中心终极选型:2026指南
微服务·云原生·架构
正经教主13 小时前
【docker基础】第五课:Docker网络详解
运维·docker·容器
鹤鸣的日常14 小时前
前端运行时动态环境变量方案
前端·react.js·docker·前端框架·vue·gitlab
我是谁??17 小时前
ubuntu22.04 通过docker部署vLLM(Qwen3-0.6B)大模型+New API+OpenWebUI
docker·容器·vllm
运维瓦工18 小时前
DevOps 生态介绍(十):Docker Compose 核心 YAML 配置详解与常用命令大全
spring cloud·docker·容器
云烟成雨TD18 小时前
Spring AI 1.x 系列【59】容器化开发支持:Docker Compose 与 Testcontainers
人工智能·spring·docker