Docker相关命令

一、数据卷

数据卷是一个虚拟的目录,是容器内目录与宿主机目录之间的桥梁。

(一)数据卷相关命令

命令 含义
docker volume create 创建数据卷
docker volume ls 查看所有的数据卷
docker volume rm 删除指定的数据卷
docker volume inspect 查看某个数据卷的详情
docker volume prune 清除数据卷

注意:在创建容器时,数据卷会自动创建

(二)挂载本地目录或文件

如果数据卷的目录结构较深,我们操作数据卷不方便,很方情况下,会直接将容器目录与宿主机指定的目录挂载。

-v 本地目录:容器内目录

-v 本地文件:容器内文件

注意 :本地目录或文件必须要以/./开头,如果以名字开头,会被识别为数据卷而非本地的目录名或文件名。

二、自定义镜像

镜像就是一堆文件的集合

(一)Docker语法

指令 含义
FROM 指定基础镜像
ENV 设置环境变量
COPY 复制本地文件到镜像的指定目录
RUN 执行Linux的shell命令,一般是安装过程的命令
EXPOSE 指定容器运行时监听的端口
ENTRYPOINT 镜像中应用的启动命令,容器运行时调用

例:使用centos:7镜像构建一个java应用,Dockerfile文件:

PowerShell 复制代码
# 使用 CentOS 7 作为基础镜像
FROM centos:7

# 添加 JDK 到镜像中
COPY jdk17.tar.gz /usr/local/
RUN tar -xzf /usr/local/jdk17.tar.gz -C /usr/local/ &&  rm /usr/local/jdk17.tar.gz

# 设置环境变量
ENV JAVA_HOME=/usr/local/jdk-17.0.10
ENV PATH=$JAVA_HOME/bin:$PATH

# 创建应用目录
RUN mkdir -p /app
WORKDIR /app

# 复制应用 JAR 文件到容器
COPY app.jar app.jar

# 暴露端口
EXPOSE 8080

# 运行命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/app.jar"]

(二)构建镜像

在Dockerfile文件编写好之后,通过下述的命令来构建镜像。

docker build -t 镜像名 .

注意:

  • -t:是给镜像起名,格式是repository.tar格式,不指定默认为latest。
  • .:是指Dockerfile所在的目录

三、网络相关命令

  • docker network create【网络名】 ------ 创建一个网络
  • docker network ls ------ 查看所有网络
  • docker network rm 【网络名】------ 删除指定的网络
  • docker network prune ------ 清楚未使用的网络
  • docker network connect【网络名】【容器名】------ 使指定的容器连接加入指定的网络
  • docker network disconnect 【网络名】 【容器名】------使指定的容器连接离开指定的网络
  • docker network inspect ------ 查看网络详情信息

四、DockerCompose基础命令

命令:docker compose 【OPTIONS】COMMAND

(一)Options类型

  • -f ------ 指定compose文件的路径
  • -p ------ 指定project名称

(二)Commands类型

  • up ------ 创建并启动所有service容器
  • down ------ 停止并移除所有容器、网络
  • ps ------ 列出所有启动的容器
  • logs ------ 查看指定容器的日志
  • stop ------ 停止容器
  • start ------ 启动容器
  • restart ------ 重启容器
  • top ------ 查看运行的进程
  • exec ------ 在指定的运行中容器中执行命令
相关推荐
爱网络爱Linux6 小时前
【系列】每天一个 Linux 命令(53)startx 命令
linux·rhce·rhca·linux运维·linux命令大全·红帽认证
ZhengEnCi6 小时前
L2A-一个域名如何访问多台云服务器-子域名、路径前缀与Nginx反向代理选型指南
linux·人工智能
M78佐菲7 小时前
51单片机学习笔记:ds18b20要点整理
linux·笔记·嵌入式硬件·学习·51单片机
高亦真7 小时前
今天是学习嵌入式的第37天
linux·学习·算法
一个有温度的技术博主7 小时前
Linux 核心命令速查指南:从文件操作到系统运维
linux·服务器
小小的木头人8 小时前
Docker 环境下迁移 containerd 数据目录:从 `/var/lib/containerd` 到 `/data/containerd`
linux·docker
东城居士8 小时前
验证第一个Linux字符驱动程序
linux·嵌入式系统
网硕互联的小客服11 小时前
各个版本的Linux系统如何修改远程端口ssh端口?
linux·运维·服务器·网络
T1mzhou11 小时前
ARM64 Linux 6.10 内核驱动(12):dd.c:probe/ remove、延迟 probe
linux·服务器·c语言·arm开发·arm
yunwei3714 小时前
eBPF 示例教程:实现 `scx_nest` 调度器
linux·后端·性能优化