当前位置: 首页 > news >正文

二、DOCKER常用命令

一、Docker file常用指令
1、基础命令
1.1、FROM

指定基础镜像,必须为第一条指令(注释除外)

FROM [--platform=<平台>] <镜像名>[:<标签>] [AS <名称>]

如:(1)使用官方镜像

FROM ubuntu:20.04
FROM nginx:1.21-alpine
FROM python:3.9-slim

(2)使用last标签

FROM node:latest  # 不推荐,因为可能意外升级

(3)指定平台架构

FROM --platform=linux/arm64 ubuntu:20.04  # 指定ARM64架构,在下x86机器上无法运行

(4)使用本地镜像

FROM --platform=linux/arm64 ubuntu:20.04  # 指定ARM64架构

(5)使用镜像摘要(最精确的版本控制)

FROM ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
1.2、RUN
RUN <command>

示例:

RUN apt-get update && apt-get install -y \curl \git \vim
1.3 COPY

从构建上下文复制文件到镜像中

COPY ./app /app
COPY requirements.txt /tmp/
1.4、ADD

类似 COPY,但功能更多(支持自动解压和远程 URL)

ADD http://example.com/file.tar.gz /tmp/
ADD local-file.tar.gz /tmp/  # 会自动解压
1.5、CMD

指定容器启动时默认执行的命令(可被 docker run​ 覆盖)

CMD ["python", "app.py"]
1.6、 ENTRYPOINT

配置容器启动时运行的命令(不易被覆盖)

ENTRYPOINT ["/usr/bin/nginx"]
1.7、WORKDIR

设置工作目录(后续 RUN/CMD/COPY 等指令的执行目录)

WORKDIR /app
2、环境配置指令
2.1、ENV

设置环境变量

ENV PYTHONUNBUFFERED=1
ENV APP_HOME=/app
2.2、ARG

构建时传递的变量(构建结束后不再存在)

ARG VERSION=latest
FROM ubuntu:$VERSION
2.3、EXPOSE

声明容器运行时监听的端口(不实际发布端口)

EXPOSE 80
EXPOSE 443
3、资源管理指令
3.1、VOLUME

创建挂载点

VOLUME /data
3.2、USER

指定运行容器时的用户名或 UID

USER nobody
USER 1000
二、docker常用指令
1、镜像管理
命令说明示例
​docker images​列出本地镜像​docker images -a​ (显示所有镜像,包括中间层)
​docker pull​拉取镜像​docker pull nginx:alpine​ (拉取指定版本)
​docker search​搜索镜像​docker search --limit 5 redis​ (显示前5个结果)
​docker rmi​删除镜像​docker rmi $(docker images -q)​ (删除所有镜像)
​docker build​构建镜像​docker build -t myapp:v1 .​ (使用当前目录Dockerfile)
​docker tag​打标签​docker tag nginx myrepo/nginx:v2​ (重命名镜像)
​docker save/load​导出/导入镜像​docker save -o nginx.tar nginx​ (导出为tar文件)
2、容器操作
命令说明示例
​docker run​创建并启动容器​docker run -d -p 8080:80 --name web nginx​
​docker ps​查看容器​docker ps -a​ (显示所有容器,包括已停止的)
​docker start/stop​启动/停止容器​docker stop web​
​docker exec​进入运行中容器​docker exec -it web bash​ (交互式终端)
​docker logs​查看日志​docker logs -f --tail 100 web​ (实时查看最后100行)
​docker rm​删除容器​docker rm -vf $(docker ps -aq)​ (强制删除所有容器)
​docker cp​复制文件​docker cp web:/etc/nginx/nginx.conf ./​ (复制到主机)

关键参数解析:

  • ​-d​:后台运行(守护模式)
  • ​-it​:交互式终端(通常配合 /bin/bash​)
  • ​-p 8080:80​:端口映射(主机端口:容器端口)
  • ​-v /host/data:/container/data​:目录挂载
  • ​--restart=always​:容器退出时自动重启
3、网络管理
命令说明示例
​docker network ls​列出网络​docker network inspect bridge​ (查看详情)
​docker network create​创建网络​docker network create mynet​
​docker network connect​连接容器到网络​docker network connect mynet web​
​docker network prune​清理未用网络​docker network prune -f​
4、数据卷管理
命令说明示例
​docker volume ls​列出数据卷​docker volume inspect myvol​
​docker volume create​创建数据卷​docker volume create db_data​
​docker volume rm​删除数据卷​docker volume rm $(docker volume ls -q)​

挂载方式对比:

  1. 匿名卷:-v /container/path​ (自动生成卷名)
  2. 命名卷:-v vol_name:/container/path​
  3. 主机目录:-v /host/path:/container/path​
5、系统管理
命令说明示例
​docker info​显示系统信息​docker info | grep Storage​ (查看存储驱动)
​docker stats​实时资源监控​docker stats --no-stream​ (单次查看)
​docker system df​查看磁盘使用-
​docker system prune​清理无用资源​docker system prune -a --volumes​ (彻底清理)
6、Docker Compose 常用命令
命令说明示例
​docker-compose up​启动服务​docker-compose up -d​ (后台运行)
​docker-compose down​停止服务​docker-compose down -v​ (同时删除卷)
​docker-compose logs​查看日志​docker-compose logs -f web​
​docker-compose exec​进入服务容器​docker-compose exec db psql -U postgres​
http://www.dtcms.com/a/333458.html

相关文章:

  • 最长递增子序列-dp问题+二分优化
  • Vue 侦听器(watch 与 watchEffect)全解析1
  • 【161页PPT】智慧方案企业数字化转型概述(课件)(附下载方式)
  • pcl法线估计的踩坑
  • 【GPT入门】第47课 大模型量化中 float32/float16/uint8/int4 的区别解析:从位数到应用场景
  • 《P1194 买礼物》
  • PyTorch的安装-CPU版本或者GPU安装有什么区别吗
  • 口播数字人免费API调用方案
  • Docker的相关知识探究详解
  • 【功能更新】“弹性互联网”正式上线Fusion WAN平台
  • Oracle按照特定列值排序和C#统计特定列值的所有行
  • 数据结构:N叉树 (N-ary Tree)
  • 【部署K8S集群】 1、安装前环境准备配置
  • Deepoc具身智能模型如何重塑康复辅助设备
  • Java中MybatisPlus使用多线程多数据源失效
  • 集成电路学习:什么是Image Segmentation图像分割
  • 功能组和功能组状态的概念关系和区别
  • java16学习笔记-Vector API
  • oracle数据库初始化
  • 共探头部设计|安贝斯携手武汉科创协会x深钣协“湖北行”,链动D+M小镇的华中范式
  • Linux软件编程-进程(2)及线程(1)
  • 快速设计简易嵌入式操作系统(5):贴近实际场景,访问多外设,进一步完善程序
  • WPF 监控CPU、内存性能
  • python math数学运算模块
  • 【AI论文】Story2Board:一种无需训练的富有表现力故事板生成方法
  • Numerical Difference between vLLM logprobs and huggingface logprobs
  • windows下hashcat使用gpu破解execl打开密码
  • 深入Amazon DynamoDB:高效、无缝的数据存储解决方案
  • 项目生命周期
  • Python爬虫大师课:HTTP协议深度解析与工业级请求封装