Docker命令

1. 基础命令

# 启动docker
systemctl start docker
# 关闭docker
systemctl stop docker
# 开机自启动docker
systemctl enable docker 

2. 镜像

● 拉取centos镜像
docker pull 镜像名[:tag]

示例:docker pull centos:centos7

● 查看本地主机所有镜像
docker images

● 删除镜像
docker rmi [REPOSITORY]:[TAG]

#删除一个
docker rmi -f 镜像名/镜像ID

#删除多个 其镜像ID或镜像用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)

#强制删除镜像
docker image rm 镜像名称/镜像ID

● 搜索可用镜像
docker search [镜像名称]
示例:
在这里插入图片描述
● 上传镜像

用于将本地的镜像上传到镜像仓库,要先登陆到镜像仓库。

sudo docker push [镜像名称]:[TAG版本号]

示例:docker push myapache:v1

向指定远程仓库推送镜像

docker login --username=[用户名] -p=[密码]  远程ip:端口

docker tag [镜像id:标签] [远程ip:端口/自定义路径/*]:[版本号]

docker push [远程ip:端口/自定义路径/*]:[版本号]

● 提交镜像
docker commit -m=“提交信息” -a=“作者信息” 容器名/容器ID 提交后的镜像名:Tag

● 拉取镜像
docker pull [镜像名称]:[TAG版本号]

● 保存镜像(将我们的镜像保存为tar 压缩文件 这样方便镜像转移和保存)
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
示例:docker save tomcat -o /myimg.tar

● 加载镜像(任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像)
docker load -i 镜像保存文件位置
示例:docker load -i /myimg.tar(然后用docker images命令即可看到已加载该镜像了)

● 查看镜像的构建过程
docker history kibana:7.9.3
docker history kibana:7.9.3 --no-trunc

3. 容器

● 删除容器
docker rm [容器ID]

● 启动容器
docker start [容器ID]

● 停止容器
docker stop [容器ID]

● kill 容器
docker kill [容器ID/容器名]

● 重启容器

#重启所有容器
docker restart $(docker ps -a -q)
#重启所有运行中的容器
docker restart $(docker ps -q)

● 进入容器

  1. docker exec -it 容器名/容器ID /bin/bash 【推荐】
    示例: docker exec -it mysql /bin/bash

Docker exec 适用于在容器中执行一次性命令、执行后台任务或运行容器内的辅助进程。这就是说,通过Docker exec,可以在容器中【启动一个新的进程】,并与它进行交互,而【不会打断之前运行的主进程】。通常用于在容器中执行一些命令或启动其他程序。这可以用于在容器中运行后台任务、调试容器中特定进程的问题等。

  1. docker attach 容器名/容器ID

Docker attach 适用于需要与容器内主进程进行实时交互的场景,比如在终端运行的应用程序或交互式调试。通常用于与正在运行的容器中的主要应用程序进行交互。例如,如果容器中运行着一个正在读取标准输入的交互式应用程序(如终端),那么可以使用Docker attach来连接到容器并与该应用程序进行交互。

● 退出容器

#exit 停止并退出容器(后台方式运行则仅退出)
#Ctrl+P+Q 不停止容器退出

● 查看容器进程信息
docker top id或名

● 查看容器元数据
docker inspect id或名

● 更换容器名
docker rename 容器ID/容器名 新容器名

● 开机自启动容器
启动容器时,使用docker run命令时 添加参数–restart=always 便表示,该容器随docker服务启动而自动启动

● 运行容器

docker run [可选参数] image

示例:docker run -itd --name centos-test centos:centos7

参数说明:
-d 后台运行,退出容器时候容器继续运行
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-i 以交互模式运行容器,通常与 -t 同时使用;
-p 指定容器的端口
(
-p ip:主机端口:容器端口  配置主机端口映射到容器端口
-p 主机端口:容器端口
-p 容器端口
)
-P 随机指定端口(大写的P)
--name 容器命名

docker run 命令

4. 推送到远程仓库

docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname
查看日志

5. 容器文件拷贝

#从容器内 拷出
docker cp 容器ID/名称: 容器内路径  容器外路径
#从外部 拷贝文件到容器内
docker  cp 容器外路径 容器ID/名称: 容器内路径

示例:

  1. 从容器复制到主机
docker cp mycontainer:/path/to/file /host/path/to/file
  1. 从主机复制到容器
docker cp /host/path/to/file mycontainer:/path/to/file
  1. 复制文件并保留元数据
# -a 或 –archive:复制文件或文件夹的元数据,包括文件所有权、文件权限等信息
docker cp -a mycontainer:/path/to/file /host/path/to/file
  1. 复制符号链接指向的真实文件
# -L 或 –follow-link:如果源路径或者目标路径包含符号链接,那么复制的将是链接所指向的真实文件或者文件夹
docker cp -L mycontainer:/path/to/symbolic/link /host/path/to/file

6. 查看运行日志

docker logs [–tail number] 容器id或容器名 #num为要显示的日志条数
docker logs -f kibana

7. 数据挂载

简单来讲,就是将容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复!
格式:-v 宿主机文件存储位置:容器内文件位置
示例


# 运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动
docker run -d -p 6379:6379 --name redis505 --restart=always  -v /var/lib/redis/data/:/data -v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf redis:5.0.5 --requirepass "password"

● --volumes-from

–volumes-from是Docker提供的一个非常有用的命令行选项,它允许我们在创建新的容器时共享一个或多个已存在的容器的卷。通过使用–volumes-from,我们可以轻松地将卷【从一个容器“挂载”到另一个容器中】,从而【实现容器之间的数据共享】。这在构建复杂的应用程序架构时非常有用,因为它允许我们将数据存储与应用程序逻辑分开。

示例:

docker run -it/-d  -p 主机端口:容器端口 --name=容器名称 ----volumes-from 数据卷容器ID/数据卷容器名称 生成数据卷容器的镜像ID/镜像名称[:版本号]

# 基于父容器,生成子容器,子容器生成数据可在父容器中查看
# 删除父容器,子容器数据依然保留
# 注:这个我还没实践过,先抄过来 - 20231118
docker run -it --name=son-centos --volumes-from father-centos new-centos

PS

文档将自己以前的笔记,通过网络搜索整合而来,内容是多篇博文的综合

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【刷题专栏—突破思维】LeetCode 138. 随机链表的复制

前言 随机链表的复制涉及到复制一个链表,该链表不仅包含普通的next指针,还包含random指针,该指针指向链表中的任意节点或空节点。 文章目录 原地修改链表 题目链接: LeetCode 138. 随机链表的复制 原地修改链表 题目介绍&#xf…

OpenAI的多函数调用(Multiple Function Calling)简介

我在六月份写了一篇关于GPT 函数调用(Function calling) 的博客https://blog.csdn.net/xindoo/article/details/131262670,其中介绍了函数调用的方法,但之前的函数调用,在一轮对话中只能调用一个函数。就在上周,OpenAI…

Java中的集合内容总结——Collection接口

集合概述 Java 集合可分为 Collection 和 Map 两大体系: Collection接口:用于存储一个一个的数据。 List子接口:用来存储有序的、可以重复的数据(主要用来替换数组,"动态"数组) 实现类&#xf…

python的文件目录操作 1

我们在实际开发中,经常需要对文件进行读取、遍历、修改等操作,通过 python 的标准内置os模块,能够以简洁高效的方式完成这些操作。常见的操作整理如下: 文件夹操作:包括文件夹的创建、修改(改名/移动&…

JS进阶——深入面向对象

1、编程思想 1.1 面向过程编程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的一次调用就可以了。 1.2 面向对象编程(oop) 面向对象是把事务分解成为一个个对象,然…

【Hello Go】Go语言复合类型

复合类型 分类指针基本操作new函数指针作为函数的参数 数组概述操作数据数组初始化数组比较在函数之间传递数组 slice概述切片的创建和初始化切片操作切片和底层数组关系内建函数appendcopy 切片作为函数传参 map概述创建和初始化常用操作赋值遍历 删除map作函数参数 结构体结构…

『 MySQL数据库 』数据库之表的约束

文章目录 前言 💻空属性约束(非空约束) 🔖default约束(默认值约束,缺省) 🔖列描述comment 🔖数字类型长度zerofill 🔖主键primary key 🔖📍 追加主键 📍📍 删除主键 &…

TensorRt推理加速框架Python API服务器部署教程以及运行Helloworld程序

一、确认cuda工具包和n卡相关驱动是否安装 在终端中输入以下命令: nvcc -V如果出现以下提示,则已经成功安装 在终端中输入以下命令: nvidia-smi如果出现即为成功,我在这里就不去介绍怎么下载cuda和驱动怎么下载了,…

2023最新最全【OpenMV】 入门教程

1. 什么是OpenMV OpenMV 是一个开源,低成本,功能强大的 机器视觉模块。 OpenMV上的机器视觉算法包括 寻找色块、人脸检测、眼球跟踪、边缘检测、标志跟踪 等。 以STM32F427CPU为核心,集成了OV7725摄像头芯片,在小巧的硬件模块上&a…

Alibaba Nacos注册中心源码剖析

Nacos&Ribbon&Feign核心微服务架构图 架构原理: 微服务系统在启动时将自己注册到服务注册中心,同时对外发布 Http 接口供其它系统调用(一般都是基于Spring MVC)服务消费者基于 Feign 调用服务提供者对外发布的接口&…

在国内购买GPT服务前的一定要注意!!!

本人已经入坑GPT多日,从最开始的应用GPT到现在的自己研发GPT,聊聊我对使用ChatGPT的一些思考,有需要使用GPT的朋友或者正在使用GPT的朋友,一定要看完这篇文章,可能会比较露骨,也算是把国内知识库、AI的套路…

清华学霸告诉你:如何自学人工智能?

清华大学作为中国顶尖的学府之一,培养了许多优秀的人才,其中不乏在人工智能领域有所成就的学霸。通过一位清华学霸的经验分享,揭示如何自学人工智能,帮助你在这场科技浪潮中勇往直前。 一、夯实基础知识 数学基础:学习…

LabVIEW和NIUSRP硬件加快了认知无线电开发

LabVIEW和NIUSRP硬件加快了认知无线电开发 对于电视频谱,主用户传输有两种类型:广播电视和节目制作和特殊事件(PMSE)设备。广播塔的位置已知,且覆盖电视传输塔(复用器)附近的某个特定地理区域(称为排除区域…

2.项目疑问

Day01 1.前后端分离项目的全局异常处理怎么做 使用ControllerAdviceExceptionHandler(类.class)来实现异常处理 ControllerAdvice: Controller增强器。将异常处理器应用到所有的控制器 ExceptionHandler:异常处理器,只要发生异…

使用SpringBoot Actuator监控应用

使用SpringBootActuator监控应用 微服务的特点决定了功能模块的部署是分布式的,大部分功能模块都是运行在不同的机器上,彼此通过服务调用进 行交互,前后台的业务流会经过很多个微服务的处理和传递,出现了异常如何快速定位是哪个…

【好奇心驱动力】ESP8266驱动SG90舵机开关灯

0.前言 ESP8266弄丢了好几个都忘记放在哪,重新买了个typeC接口的方便多了,看到驱动SG90舵机作为智能开关,简单复现了一下,代码比较简单,没有连接小爱同学或者其他语音助手。 1.实验方法 ESP8266连接SG90舵机&#x…

驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接

参考:https://www.cnblogs.com/sam-snow-v/p/15917898.html eclipse链接SQL Server出现问题 笔者使用Open JDK 17,SQL Server 2016,项目中使用JPA操作数据库。测试环境没问题,生产环境出现如题所示“驱动程序无法通过使用安全套接…

趣学python编程 (二、计算机硬件和用途介绍)

1944年,美籍匈牙利数学家 冯诺依曼 提出计算机基本结构和工作方式的设想,为计算机的诞生和发展提供了理论基础。时至今日,尽管计算机软硬件技术飞速发展,但计算机本身的体系结构并没有明显的突破,当今的计算机仍属于冯…

【Linux】基本指令

Linux现在已经是绕不开的操作系统,其开源导致的稳定性,安全性等方面遥遥领先。今天我们开始学习Linux操作系统的基本指令 ls 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于…

高效文件管理:一键批量修改文件名,并统一转换为大写扩展名

在日常生活和工作中,文件处理成为了一项必不可少的任务。无论是个人还是企业,都需要管理大量的文件,包括图片、文档、音频和视频等。这些文件的名字可能千奇百怪,格式各不相同,而且往往需要按照一定的规则进行修改或整…