docker常用命令大全

服务相关命令​

启动 docker 服务​

systemctl start docker

停止 docker 服务​

systemctl stop docker

重启 docker 服务​

systemctl restart docker

查看 docker 服务状态​

systemctl status docker

设置开机启动 docker 服务​

systemctl enable docker

镜像相关命令​

搜索镜像​

docker search tomcat

搜索结果如下:

docker-search-result

拉取镜像​

docker pull tomcat

我已经拉取过 tomcat,所以这里用拉取 mysql 来截个图, 不加 tag 的情况下, 默认拉取的就是 latest(最新版本) 拉取过程是有进度条的

docker-pull-1

拉取完成就是下面这样

docker-pull-2

TIP

指定版本号, 格式如下:

docker pull 镜像名:版本号

如果不知道 tag 有哪些, 可以去 Dockerhub 查看

打开网站直接搜索目标镜像, 比如 tomcat 就会搜到如下结果:

dockerhub-search-tomcat

点击结果进入详情页就可以查看到 tag 相关信息:

tomcat-supported-tag

使用Dockerfile构建镜像​

# docker build -t 镜像名:版本号 .  注意最后边的点 `.` 表示当前目录, 别丢了.
docker build -t my_image:1.0 .

Docker build 命令可以使用 Dockerfile 来构建镜像。默认情况下,Dockerfile 文件位于构建上下文的根目录下,因此 docker build 命令会自动读取上下文根路径下名为 Dockerfile 的文件。如果 Dockerfile 文件不在根目录下,可以使用 -f 选项来指定 Dockerfile 文件的路径。例如,以下命令将使用 /path/to/Dockerfile 文件构建镜像:

docker build -f /path/to/Dockerfile -t image_name:tag .

其中,

  • . 表示当前目录.
  • -f , --file Name of the Dockerfile (Default is PATH/Dockerfile)
  • -t , --tag Name and optionally a tag in the name:tag format

Dockerfile 简单列举几个指令:

  • FROM : 指定基础镜像
  • WORKDIR : 指定工作目录
  • COPY : 将文件或者目录从构建上下文复制到容器中(推荐)
  • ADD : 将文件或者目录从构建上下文复制到容器中,并且会将压缩文件解压缩,支持 URL
  • RUN : 在容器中执行命令
  • CMD : 容器启动时执行的命令
  • EXPOSE : 指定要监听的端口以实现与外部通信

举个例子:

Dockerfile

# nodejs server Dockerfile# FROM node
# or
FROM node:16WORKDIR /nodeApp# COPY <宿主机目录或文件路径> <容器内目录或文件路径>
COPY ./package.json .
# ADD <宿主机目录或文件路径> <容器内目录或文件路径>
# ADD ./package.json .# shell格式:就像在命令行中输入的Shell脚本命令一样。
RUN npm installCOPY ./src ./serverEXPOSE 8000CMD ["node", "./server/index.js"]

查看本地镜像​

docker images

该命令将会列出从Dockerhub拉取的镜像和你自己使用 docker build 构建的镜像列表

docker-images

查看本地镜像 ID

docker images -q

删除本地镜像​

docker rmi mysql:5.7# ordocker rmi 2be84dd575ee

为了准确删除你的目标镜像, 建议删除有多个版本存在的镜像时, 使用镜像名:版本号, 如果二者镜像 ID 不同也可以使用镜像 ID 进行删除, 防止误删

删除tagnone的镜像

docker rmi `docker images -f "dangling=true" -q`

全部删除本地镜像

docker rmi `docker images -q`

解释一下, docker images -q 这个命令可以列出全部本地镜像的 ID, 相当于把全部镜像 ID 传给了docker rmi 就实现全部删除效果了.

docker-images-q

docker-rmi-result

container-id

TIP

如上图所示: Error response from daemon: conflict: unable to delete eb4a57159180 (cannot be forced) - image is being used by running container 8e27f3c57145

报了个错: 不能删除IDeb4a57159180的镜像(是nginx镜像), 这个镜像被一个ID8e27f3c57145正在运行的容器使用着.

我使用nginx镜像启动了一个容器, 此时nginx镜像是不可以被删除的, 如果确实想要删除nginx, 需要先停止所有使用这个镜像的容器, 并且将这些容器删除, 才可以删除nginx镜像

导出镜像​

# docker save -o 给导出的镜像压缩包起个文件名 要导出的镜像名:版本号(推荐) 或者 镜像ID也可以
docker save -o image.tar target_image:tag

导入镜像​

# docker load -i 指定要导入的镜像压缩包文件名
docker load -i image.tar

导入成功后就可以使用

docker images

查看一下啦

TIP

如果用镜像 ID 导出的镜像在导入之后是没有名字和tag的, 这种情况我们可以使用 docker tag 给镜像改名字

docker tag 镜像ID new_image_name:tag

容器相关命令​

创建容器​

docker run -d --name=my_container -p 8080:8080 tomcat:latest

Docker 创建容器的命令是 docker run。以下是一些常用的参数:

  • -d: 后台运行容器,并返回容器ID
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口;
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • --name=my_container: 为容器指定一个名称;
  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • --rm: 退出容器后会自动删除该容器;

你可以根据你的需求来选择相应的参数。最后是使用的镜像名和版本号

TIP

使用交互模式运行容器时, 会直接进入容器内部, 退出交互模式后, 该容器自动停止运行

查看容器列表​

# 查看正在运行的容器列表
docker ps# 查看最近一次创建的容器
docker ps -l# 查看正在运行的容器ID列表
docker ps -q# 查看全部容器(包括已经停止的容器)
docker ps -a# 查看全部容器ID列表
docker ps -aq

查看正在运行的容器列表

docker-ps

查看正在运行的容器 ID 列表

docker-ps-q

停止运行的容器​

# 使用容器名停止
docker stop my_container# or
# 使用容器ID停止
docker stop container_id# 使用容器ID停止多个正在运行的容器
docker stop `docker ps -q`

使用容器 ID 停止多个正在运行的容器

docker-stop-q

启动已停止的容器​

# 容器名
docker start my_container# or
# 容器ID
docker start container_id# 使用容器ID启动多个已停止的容器
docker start `docker ps -aq`

使用容器名启动

docker-start

使用多个容器 ID 启动

docker-start-aq

删除容器​

# 用容器名删除
docker rm my_container# or
# 用容器ID删除
docker rm container_id# 删除多个未运行的容器, 运行中的无法删除
docker rm `docker ps -aq`

docker-rm-aq

进入容器(正在运行的容器才可以进入)​

# 使用容器名
docker exec -it my_container /bin/bash# or
# 使用容器ID
docker exec -it container_id /bin/bash

进入容器后

docker-exec-it

查看容器信息​

# 容器名
docker inspect my_container# or
# 容器ID
docker inspect container_id

内容很多一张截图放不下, 自己查查看吧

docker-inspect

容器与宿主机之间的数据拷贝​

  • 将容器中目录或文件拷贝到宿主机
# 将容器中 /app/html 目录拷贝到宿主机 /mnt/ 目录中
docker cp container_id:/app/html /mnt/
# 将容器中 /app/html/index.html 文件拷贝到宿主机 /mnt/dist/ 目录中
docker cp container_id:/app/html/index.html /mnt/dist/
  • 将宿主机目录或文件拷贝到容器中
# 将宿主机 /mnt/dist 目录拷贝到容器的 /app 目录中
docker cp /mnt/dist container_id:/app/
# 将宿主机 /mnt/dist/index.html 文件拷贝到容器的 /app/html 目录中
docker cp /mnt/dist/index.html container_id:/app/html/
  • 将宿主机/mnt/dist目录拷贝到容器中, 并重命名为html
# 将宿主机 /mnt/dist 目录拷贝到容器的 /app/ 中重命名为 html
docker cp /mnt/dist container_id:/app/html
# 将宿主机 /mnt/dist/index1.html 文件拷贝到容器的 /app/html/ 中重命名为 index.html
docker cp /mnt/dist/index1.html container_id:/app/html/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/758630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初始Java篇(JavaSE基础语法)(2)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 目录 逻辑控制 顺序结构 分支结构 if语句 switch 语句 循环结构 while 循环 for 循环 do while 循环 输入输出 输出到控制台 从键盘输入 …

详解隐私计算框架及技术要点

隐语架构一览 为什么这样分层&#xff1f; 完备性透明性开放性 隐语架构解析 产品层 算法层 隐语PSI特点 PIR Data Analysis SCQL 核心特性 联邦学习 特色 计算层 SPU 核心 HEU 同态加密设备 TEEU 密码原语 资源层 kuscia 互联互通 跨域管控 最后

多家中国车企宣布将搭载英伟达最新车载芯片;Altman 曝全新 GPT-5 细节丨 RTE 开发者日报 Vol.168

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

Linux环境开发工具之vim

前言 上一期我们已经介绍了软件包管理器yum&#xff0c; 已经可以在linux上查找、安装、卸载软件了&#xff0c;本期我们来介绍一下文本编辑器vim。 本期内容介绍 什么是vim vim的常见的模式以及切换 vim命令模式常见的操作 vim底行模式常见的操作 解决普通用户无法执行sudo问…

鸿蒙开发实战:【文件管理】

介绍 本示例主要展示了文件管理相关的功能&#xff0c;使用[ohos.multimedia.medialibrary]、[ohos.filemanagement.userFileManager] 、[ohos.fileio] 、[ohos.file.fs]、[ohos.app.ability.contextConstant] 等接口&#xff0c;实现了增添文件、删除文件、查找指定类型文件…

WRF高精度气象模拟技术及在地学领域中的应用

随着生态文明建设和“碳中和”战略的持续推进&#xff0c;我国及全球气候变化及应对是政府、科学界及商业界关注的焦点。气候是多个领域&#xff08;生态、水资源、风资源及碳中和等问题&#xff09;的主要驱动因素&#xff0c;合理认知气候变化有利于解释生态环境变化机理及过…

(56)删除每行中的最大值

文章目录 1. 每日一言2. 题目3. 解题思路4. 代码5. 结语 1. 每日一言 抱怨过去发生的一切&#xff0c;就等于丧失了力量&#xff0c;白白浪费了往事要带给我们的成长。 2. 题目 题目链接&#xff1a;删除每行中的最大值 给你一个 m x n 大小的矩阵 grid &#xff0c;由若干正…

【动态规划】算法例题

目录 一维动态规划&#xff1a; 137. 爬楼梯 ① 138. 打家劫舍 ② 139. 单词拆分 ② 140. 零钱兑换 ② 141. 最长递增子序列 ② 多维动态规划&#xff1a; 142. 三角形最小路径和 ② 143. 最小路径和 ② 144. 不同路径 II ② 145. 最长回文子串 ② 146. 交错字符串…

SpringCloud-深度理解ElasticSearch

一、Elasticsearch概述 1、Elasticsearch介绍 Elasticsearch&#xff08;简称ES&#xff09;是一个开源的分布式搜索和分析引擎&#xff0c;构建在Apache Lucene基础上。它提供了一个强大而灵活的工具&#xff0c;用于全文搜索、结构化搜索、分析以及数据可视化。ES最初设计用…

​selenium+python做web端自动化测试框架与实例详解教程

最近受到万点暴击&#xff0c;由于公司业务出现问题&#xff0c;工作任务没那么繁重&#xff0c;有时间摸索seleniumpython自动化测试&#xff0c;结合网上查到的资料自己编写出适合web自动化测试的框架&#xff0c;由于本人也是刚刚开始学习python&#xff0c;这套自动化框架目…

【NLP笔记】RNN总结

文章目录 经典RNN单向RNN双向RNNDeep RNNRNN特性总结 变体RNNLSTMGRU 参考及转载内容&#xff1a; 循环神经网络&#xff08;RNN&#xff09;深度学习05-RNN循环神经网络完全理解RNN&#xff08;循环神经网络&#xff09; 传统的CNN&#xff08;Covolutional Neural Network&am…

Redis6.0多线程的疑惑解答

1.Redis6.0之前的版本真的是单线程吗&#xff1f; Redis在处理客户端的请求是&#xff0c;包括获取(socket读)、解析、执行、内容返回(socket 写)等都有一个 顺序串行的主线程处理&#xff0c;这就是所谓的"单线程"。但如果严格来讲并不是单线程&#xff0c;除了主线…

浏览量这么低,还要不要继续坚持?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 曾经在一个群里聊天&#xff0c;有群友看到我两位数的浏览量&#xff0c;说到&#xff1a;浏览量这么低还坚持什么&#xff1f; 浏览量低是事实&#xff0c;大多数是十几二十的&#xff0c;上百的都是少数&#xff0c…

python社区垃圾分类管理平台的设计与实现flask-django-php-nodejs

近些年来&#xff0c;随着科技的飞速发展&#xff0c;互联网的普及逐渐延伸到各行各业中&#xff0c;给人们生活带来了十分的便利&#xff0c;社区垃圾分类管理平台利用计算机网络实现信息化管理&#xff0c;使整个社区垃圾分类管理的发展和服务水平有显著提升。 语言&#xf…

Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(一)

概览 Swift 语言给我们的印象是&#xff1a;简洁、现代化和可以“心安神泰”的完全信赖。不过&#xff0c;在一些特殊情况下我们唯有进入 Swift 底层的动态世界方能真正地“随遇而安”。 保安局“刘局长”曾语重心长的教导过我们&#xff1a;“非常时期&#xff0c;用非常方法…

有了std::thread,为什么还需要引入std::jthread?

C进阶专栏&#xff1a;http://t.csdnimg.cn/HGkeZ 目录 1.前言 2.std::is_invocable_v 3.std::jthread 3.1.构造函数 3.2.std::jthread无需join/detach使用实例 3.3.std::jthread处理外部请求中断实 3.4.处理中断请求示例代码 4.特性 5.总结 1.前言 C11以来提供了C原…

Redis实现高可用方案

文章目录 前言一、主从模式1.1 复制流程1.2 优缺点 二、哨兵模式2.1 介绍2.2 哨兵的工作模式 三、集群模式3.1 Cluster集群节点的通讯3.2 Hash Slot插槽算法3.3 Redis Cluster集群3.4 故障转移 前言 如果单机部署Redis服务的话&#xff0c;一旦Reids宕机&#xff0c;那么整个服…

英伟达 V100、A100/800、H100/800 GPU 对比

近期&#xff0c;不论是国外的 ChatGPT&#xff0c;还是国内诸多的大模型&#xff0c;让 AIGC 的市场一片爆火。而在 AIGC 的种种智能表现背后&#xff0c;均来自于堪称天文数字的算力支持。以 ChatGPT 为例&#xff0c;据微软高管透露&#xff0c;为 ChatGPT 提供算力支持的 A…

centos 环境部署

一、安装redis 1. 升级 GCC 最直接的解决方式是升级你的 GCC 编译器到支持 C11 标准的版本。CentOS 7 默认的 GCC 版本较旧&#xff0c;可能不支持 _Atomic。你可以通过以下步骤升级 GCC&#xff1a; 启用 CentOS 的 Software Collections (SCL) 仓库&#xff0c;该仓库提供了…

王老吉药业开拓数字经济“新蓝海”,成立数字经济研究所,科技赋能新品压片糖

3月12日&#xff0c;广州王老吉药业股份有限公司&#xff08;以下简称“王老吉药业”&#xff09;召开第十一届312感恩活动新闻发布会&#xff0c;宣告王老吉数字经济研究所成立&#xff0c;并发布王老吉压片糖新品。一系列重要重要举措&#xff0c;无一不标志着王老吉药业正以…