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

docker命令总结

文章目录

  • 一、命令
    • 1.1 将容器提交为新的镜像 (`docker commit`)
    • 1.2 将镜像保存为 tar 文件 (`docker save`)
    • 1.3 从 tar 文件加载镜像 (`docker load`)
    • 1.4 查看镜像列表
    • 1.5 查看容器列表
    • 1.6 运行容器
    • 1.7 停止/重启容器(可选操作)
    • 1.8 拉取 Nginx 镜像
  • 二、问题
    • 2.1 systemd 无法使用
    • 2.2 nfs的使用
    • 2.3 windows下Docker Desktop的ipvlan、macvlan使用

docker 命令的总结,会 持续更新

一、命令

1.1 将容器提交为新的镜像 (docker commit)

  • 命令格式

    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]。
    

    CONTAINER : 要提交的容器名称或 ID。
    [REPOSITORY[:TAG]] : 为新创建的镜像指定仓库名和标签

  • 示例

    docker commit my_container my_new_image:snapshot
    

1.2 将镜像保存为 tar 文件 (docker save)

  • 命令格式

    docker save [OPTIONS] IMAGE [IMAGE...] > output.tar
    # 或
    docker save [OPTIONS] -o output.tar IMAGE [IMAGE...]
    

    IMAGE: 可以是镜像的名称:标签、镜像 ID 或 digest(使用 docker images 查看)可以同时保存多个镜像到一个 tar 文件
    output.tar: 保存的 tar 文件名(路径)。

  • 示例

    docker save my_new_image:snapshot > my_image_backup.tar
    # 或
    docker save -o my_image_backup.tar my_new_image:snapshot
    

1.3 从 tar 文件加载镜像 (docker load)

  • 命令格式

    docker load [OPTIONS]
    

    通常从标准输入读取 tar 文件内容。使用 < 操作符或 -i 选项指定文件。

  • 示例

    docker load < my_image_backup.tar
    # 或
    docker load -i my_image_backup.tar
    

1.4 查看镜像列表

docker images [选项]
# 或等价命令(推荐新手记忆):
docker image ls [选项]

常用选项

  • -a/--all:显示所有镜像(包括中间层镜像,默认仅显示顶层)。
  • -q/--quiet:仅显示镜像 ID(Quiet 模式)。
  • --filter/-f:过滤镜像(例如 docker images -f "dangling=true"显示无标签的悬空镜像)。

1.5 查看容器列表

# 查看运行中的容器
docker ps [选项]
# 等价命令:
docker container ps [选项]# 查看所有容器(包括已停止的)
docker ps -a [选项]
# 等价命令:
docker container ps -a [选项]

常用选项

  • -a/--all:显示所有容器(包括停止、退出的)。
  • -q/--quiet:仅显示容器 ID。
  • -n <数字>/--last <数字>:显示最近创建的 N 个容器(例如 -n 3显示最近 3 个)。
  • -f "状态条件":过滤容器(例如 docker ps -f "status=exited"显示已退出的容器)。

1.6 运行容器

docker run [选项] 镜像名 [命令] [参数]
# 等价命令:
docker container run [选项] 镜像名 [命令] [参数]

核心选项(最常用):

  • -d/--detach:后台运行容器( detached 模式,默认前台运行)。

  • -p <主机端口>:<容器端口>:端口映射(例如 -p 8080:80将主机 8080 端口映射到容器 80 端口)。

  • -v <主机路径>:<容器路径>:文件/目录挂载(例如 -v /data:/app/data将主机 /data目录挂载到容器的 /app/data)。

  • --name <容器名>:为容器指定自定义名称(默认随机生成)。

  • -e <环境变量>:设置容器内环境变量(例如 -e MYSQL_ROOT_PASSWORD=123456)。

    示例

    docker run -d \--name my-nginx \       # 自定义容器名-p 8080:80 \            # 主机 8080 端口 → 容器 80 端口(Nginx 默认端口)-v /home/user/nginx/html:/usr/share/nginx/html \  # 挂载主机目录到容器(可选)nginx:latest            # 镜像名+版本
    

1.7 停止/重启容器(可选操作)

docker stop my-nginx    # 停止容器
docker start my-nginx   # 重启容器

1.8 拉取 Nginx 镜像

docker pull nginx:latest  # 拉取最新版 Nginx 镜像

二、问题

2.1 systemd 无法使用

System has not been booted with systemd as init system (PID 1). Can’t operate.

  • 需要镜像里面有 systemd 的安装包 没安装不能使用
docker run -it --privileged --entrypoint  /lib/systemd/systemd --name test 100askimx6ullubuntu:18.04

主要是要有这个命令 --privileged --entrypoint /lib/systemd/systemd

--privileged:使用特权模式

--entrypoint /lib/systemd/systemd:初始化 systemd作为主进程

  • 如果使用了 vsocde的.devcontainer 需要加上

    “overrideCommand”: false, // 禁用 VS Code 默认覆盖 entrypoint(核心修复)

2.2 nfs的使用

如果在 windows 上面安装的docker 不要想在docker 容器里面nfs的服务器了,因为nfs服务器需要 2049111 这两个端口,111 端口是 RPC 的转发端口,一般是有两种方式解决端口问题

  • 把windows 的 111 端口映射出来,会和 windows自带的端口产生 冲突 ,

  • 修改 rpc的端口,系统的很多服务都有使用RPC,会导致系统崩溃

  • windwos其他端口(2060)映射到容器的111 端口,

    在客户端也就是挂载的时候,mount这个命令找不到指定 rpc 端口的指令

  • 那么只有一个方法,也就是让docker的容器独立IP出来,这样网络环境就像一个物理机一样

    在docker当中,有两种方式可以实现容器独立IP,分别是 ipvlan macvlan

    但是这两种方式在windows下面的Docker Desktop 都不适用

    想了解情况看下下面

2.3 windows下Docker Desktop的ipvlan、macvlan使用

官方论坛说了 ipvlan和macvlan是适用于linux内核的,并不适用windows

相关论坛主题:Docker Windows - Cannot create ipvlan on other then eth0 - wsl2 interface mirroring active - Docker Engine / General - Docker Community Forums

Macvlan, transparent, and host netowork types? - Docker Desktop - Docker Community Forums

在这里插入图片描述

所以不要折腾了,等官方支持吧

http://www.dtcms.com/a/418952.html

相关文章:

  • 2、user-service 企业级代码目录结构规范
  • 网站开发的自适应wordpress 万能搜索页
  • Linux设置定时作业执行node.js脚本
  • XXE - 实体注入(xml外部实体注入)
  • MySQL查询性能优化核心知识点总结
  • 自然语言处理(03)
  • 哈尔滨速成网站建设公司装修费用会计分录
  • 做网站亏本太原市城乡建设局网站
  • 基于本地运行的OCR在特别场景的应用
  • 网站被host重定向wordpress图像居中
  • 十大AI驱动的网络安全解决方案对比分析
  • 09.【Linux系统编程】“文件“读写操作,Linux下一切皆文件!
  • SkyVLN: 城市环境中无人机的视觉语言导航和 NMPC 控制;香港科技大学
  • 【React 状态管理深度解析:Object.is()、Hook 机制与 Vue 对比实践指南】
  • react-lottie动画组件封装
  • 哈尔滨网站建设吕新松做搜索引擎网站
  • PostgreSQL 流复制参数 - synchronous_commit
  • BPEL:企业流程自动化的幕后指挥家
  • 企业网站开发一薇设计说明英语翻译
  • 搭建 Nexus3 私服并配置第三方 Maven 仓库(阿里云等)和优先级
  • JVM 深入研究 -- 详解class 文件
  • Apache Airflow漏洞致敏感信息泄露:只读用户可获取机密数据
  • 第十六周-基本量子3
  • 手机微网站怎么制作缪斯国际设计董事长
  • 在 Spring Cloud Gateway 中实现跨域(CORS)的两种主要方式
  • SQL Server从入门到项目实践(超值版)读书笔记 27
  • 【Git】项目管理全解
  • rdm响应式网站开发企业年报网上申报流程
  • 昆山开发区网站制作网站建设文档模板
  • PySide6调用OpenAI的Whisper模型进行语音ASR转写