Docker的常用基础命令(详细讲解)

news2024/11/24 3:39:33

        首选需要大家搭建好Docker环境,没有环境的可以查看前面的详细讲解安装Docker引擎的文章(在CentOS上安装Docker引擎_征服bug的博客-CSDN博客)

首先是安装好Docker 引擎

一,如何启动与停止引擎服务

#启动docker
systemctl start docker
#停止docker
systemctl stop docker
#重启docker
systemctl restart docker
#查看docker状态
systemctl status docker

二,docker引擎安装校验与查看docker的详细信息

#查看docker概要信息
docker info
#查看docker帮助文档
docker –help
#安装校验
docker -v             #docker的版本号
docker version      #docker的详细信息

三,配置镜像加速

        可以通过配置国内镜像源的方式,从国内获取镜像,提高拉取速度。这里介绍中国科学技术大学 (LUG@USTC)的开源镜像:https://docker.mirrors.ustc.edu.cn 和网易的开源镜像:http://hub-mir ror.c.163.com

编辑文件 daemon.json

mkdir -p /etc/docker
vi /etc/docker/daemon.json

在文件中输入以下内容并保存

{
"registry-mirrors": ["http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"]
}

重新加载配置信息及重启 Docker 服务

# 重新加载某个服务的配置文件
systemctl daemon-reload
# 重新启动
docker sudo systemctl restart docker

拉去 

docker run hello-world 命令执行流程图如下。

Docker命令

查看镜像

docker images

REPOSITORY :镜像在仓库中的名称,本文中以后都简称镜像名称

TAG :镜像标签

IMAGE ID :镜像

ID CREATED :镜像的创建日期(不是获取该镜像的日期)

SIZE :镜像大小   

这些镜像都是存储在 Docker 宿主机的 /var/lib/docker 目录下。

搜索镜像

如果你需要从网络中查找需要的镜像,可以通过以下命令搜索。

docker search 镜像名称

NAME :镜像名称

DESCRIPTION :镜像描述

STARS :用户评价,反应一个镜像的受欢迎程度

OFFICIAL :是否为官方构建

AUTOMATED :自动构建,表示该镜像由

Docker Hub 自动构建流程创建的。

拉取镜像

拉取镜像就是从中央仓库下载镜像到本地。

docker pull 镜像名称

通过查看 tag 信息,如果我们要下载 centos7 的镜像。

docker pull centos:7

删除镜像

# 删除单个镜像

docker rmi 镜像ID

# 删除多个镜像

docker rmi 镜像ID 镜像ID 镜像ID

  docker images -q 可以查询到所有镜像的 ID,通过组合命令可以实现删除所有镜像的操作。

docker rmi `docker images -q`

注意:如果通过某个镜像创建了容器,则该镜像无法删除。

解决办法:先删除镜像中的容器,再删除该镜像。

容器相关命令

查看容器

查看正在运行的容器。

docker ps

字段说明:

CONTAINER ID :容器 ID

IMAGE :所属镜像

COMMAND :

CREATED :创建时间

STATUS :容器状态

PORTS :端口

NAMES :容器名称

查看停止的容器

docker ps -f status=exited

查看所有容器(包括运行和停止)。

docker ps -a

查看容器的ID

docker ps -q

查看最后一次运行的容器。

docker ps -l

列出最近创建的 n 个容器。

docker ps -n 5

查看docker内容器的运行状态

docker stats

创建与启动容器

格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

选项:

-i :表示运行容器;

-t :表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪 终端;

--name :为创建的容器命名;

-v :表示目录映射关系(前者是宿主机目录,后者是映射到容器上的目录),可以使用多个 -v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上;

-d :在 run 后面加上 -d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登 录容器,如果只加 -i -t 两个参数,创建容器后就会自动进容器里);

-p :表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个 -p 做多个端口 映射。

-P :随机使用宿主机的可用端口与容器内暴露的端口映射。

创建并进入容器

下面这行命令的意思就是通过镜像 AA 创建一个容器 BB,运行容器并进入容器的 /bin/bash 。

docker run -it --name 容器名称 镜像名称:标签 /bin/bash

注意:Docker 容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为是空闲状态,就 会自动退出。

退出当前容器:exit

守护式方式创建容器

docker run -di --name 容器名称 镜像名称:标签

登录守护式容器方式

docker exec -it 容器名称|容器ID /bin/bash

停止与启动容器

# 停止容器

docker stop 容器名称|容器ID

# 启动容器

docker start 容器名称|容器ID

# 重启容器

docker restart 容器名称|容器ID

# 停止容器

docker kill 容器名称|容器ID

删除容器

# 删除指定容器

docker rm 容器名称|容器ID

# 删除多个容器

docker rm 容器名称|容器ID 容器名称|容器ID

文件拷贝

如果我们需要将文件拷贝到容器内可以使用 cp 命令。

格式:docker cp 需要拷贝的文件或目录 容器名称:容器目录

也可以将文件从容器内拷贝出来(命令在宿主机中使用)。

docker cp 容器名称:容器目录 需要拷贝的文件或目录

目录挂载(容器数据卷操作)

创建容器添加 -v 参数,格式为 宿主机目录:容器目录 ,

例如:

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7

# 多目录挂载

docker run -di -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名

匿名挂载

匿名挂载只需要写容器目录即可,容器外对应的目录会在 /var/lib/docker/volumes 中生成。

# 匿名挂载

docker run -di -v /usr/local/data --name centos7-02 centos:7

# 查看 volume 数据卷信息

docker volume ls

具名挂载

具名挂载就是给数据卷起了个名字,容器外对应的目录会在 /var/lib/docker/volume 中生成。

# 具名挂载

docker run -di -v docker_centos_data:/usr/local/data --name centos7-03 centos:7

# 查看 volume 数据卷信息

docker volume ls

指定目录挂载

一开始给大家讲解的挂载方式就属于指定目录挂载,这种方式的挂载不会在 /var/lib/docker/volume 目录生成内容。

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7 # 多目录挂载

docker run -di -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名

查看目录挂载关系

通过 docker volume inspect 数据卷名称 可以查看该数据卷对应宿主机的目录地址。

docker volume inspect docker_centos_data

通过 docker inspect 容器ID或名称 ,在返回的 JSON 节点中找到 Mounts ,可以查看详细的数据 挂载信息。

只读/读写挂载

# 只读。只能通过修改宿主机内容实现对容器的数据管理。

docker run -it -v /宿主机目录:/容器目录:ro 镜像名

# 读写,默认。宿主机和容器可以双向操作数据。

docker run -it -v /宿主机目录:/容器目录:rw 镜像名

volumes-from(继承)

# 容器 centos7-01 指定目录挂载

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7 # 容器 centos7-04 和 centos7-05 相当于继承 centos7-01 容器的挂载目录

docker run -di --volumes-from centos7-01:ro --name centos7-04 centos:7 docker run -di --volumes-from centos7-01:rw --name centos7-05 centos:7

查看容器 IP 地址

我们可以通过以下命令查看容器的元信息。

docker inspect 容器名称|容器ID

也可以直接执行下面的命令直接输出 IP 地址。

格式:docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器ID

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

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

相关文章

JAVA-GUI工具的编写-----请求篇

上节我们说到,我们制作了样子货的GUI,但是没有嵌入任何的按钮事件,并且上一次忘记加进去命令执行的确定按钮,让我们简单的回顾一下子吧 import javafx.application.Application; import javafx.collections.FXCollections; impor…

R在GIS中用ggmap地理空间数据分析

概要 做过O2O(Online To Offline,在线离线/线上到线下)的小伙伴知道,GIS数据需要具体到精准的位置(即经纬度);对于连锁门店,使用GIS和其它的数据密集型服务遵循一个简单的逻辑:数据有助于企业节省开支&…

Vilatile底层逻辑总结

#### 增加volatile 使用JIT优化的时候 禁止出现语句重排 #### volatile是Java虚拟机提供的轻量级同步机制。 - 保证可见性 - 不保证原子性(整体流程成功 整体流程失败)如果要保证原子性-加 synchronized 或者直接使用 Automic 原子类 - 禁止指令重排&am…

VBA Regex 正则表达式应用介绍

. VBA正则表达式介绍 正则表达式或 RegEx 用于在字符串中查找特定的字符。 本文将展示一个 VBA RegEx 示例,并演示为什么在 VBA 中使用正则表达式如此强大。 正则表达式是一个比较大的话题,关于这方面的书很多。 同时也是一个让许多人感到害怕的话题,因为它的语法比较神秘和…

【论文笔记】ASYMMETRIC SELF-PLAY FOR AUTOMATIC GOAL DISCOVERY IN ROBOTIC MANIPULATION

【论文笔记】ASYMMETRIC SELF-PLAY FOR AUTOMATIC GOAL DISCOVERY IN ROBOTIC MANIPULATION ABSTRACT 【主要工作】用一个单一的、有目标条件的策略来解决许多机器人操作任务,包括对之前未见过的物体的操作。 【主要方法】对于目标发现过程采用非对称自我博弈方法…

Java 输入输出流简介和应用 (Java实现序列化工具类)

目录 简介 常用模板 实现序列化工具类 简介 应用场景 代码 简介 Java 流相关的类都封装在 java.io 包中,而且每个数据流都是一个对象。所有输入流类都是 InputStream 抽象类(字节输入流)和 Reader 抽象类(字符输入流&#…

ISP Tuning

ISP Tuning1. 简介2. 常用算法2.1 BLC2.2 AWB (处理色温引起的偏色问题)2.2.1 色温(Color Temperature:温度越低色温越高)2.2.2 为什么需要AWB (消除光源颜色的影响)2.2.3 AWB的目标2.2.4 如何实现自动白平衡 (先确定色温然后找对…

汽配erp管理系统目前有哪些公司提供了解决方案?

之前的一个朋友提问:我们是一个有200人左右的汽车配件供应商,为了迎合整车厂家的需要,提高自身管理运作的效率,准备上erp管理软件来规范企业的运作。现阶段我们内部管理的信息化程度比较低,从库房到现场作业都是靠纸质…

【Labivew】G语言

🚩write in front🚩 🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5&#xff5…

第七章 贝叶斯分类器(上)

7.1 贝叶斯决策论 贝叶斯决策论是概率框架下实施决策的基本方法。 假设有N种可能的类别标记,即y{c1,c2,…,cn},λij是将一个真实标记为cj的样本误分类为ci所产生的损失。基于后验概率P(ci | x)可获得将样本x分类为ci所产生的期望损失,即在样…

C++多态总结

多态的概念 多态的基本概念 多态支持不同对象完成不同的行为。 定义“人”为一种对象,那么不同的人对于一件事会有不同的行为。 比如:普通人买票时,票价为全价。 学生买票时,是半价买票。 军人买票时则可优先买票。同属于人这一大…

java项目-第165期ssm咨询交流论坛_ssm毕业设计_计算机毕业设计

java项目-第165期ssm咨询交流论坛_ssm毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm咨询交流论坛》 该项目分为2个角色,管理员和用户。 用户可以浏览前台,包含功能有: 首页、学校风采、师资力量、投稿信息 、论坛交流、系统公…

认识vue3以及语法运用简介

Vue3支持2的大多数特性 性能提升: 打包大小减少41%, 初次渲染快55%,更新快133%, 内存使用减少54% 推出一系列组合型API ref与reactive watch与computed 新的声明周期函数。 一、组合API------reactive、ref 与 toRefs 在Vue2.x中,定义数据都是在data中,但…

LeetCode——Weekly Contest 320(附动态规划解题思路)

LeetCode周赛第320场记录 质量还不错的一场周赛,也可以学到不少知识。 2475. 数组中不等三元组的数目(排序荷兰国旗问题) 这道题非常简单,就是从头向后一一找出不含重复数字的三元组。我在比赛时直接写了一个三重循环暴力来解,这道题的数据…

WebDAV之葫芦儿·派盘+元思笔记

元思笔记 支持webdav方式连接葫芦儿派盘。 卡片笔记不仅是笔记爱好者,学生、医生、投资等各行各业的人都在不约而同的夸赞元思笔记的好。这是一款面向大众的卡片笔记软件,解决了笔记类软件的一个痛点:绝大多数人都很难坚持每天记一点东西。任何笔记工具,不论是纸笔还是电…

时序特征提取工具

在选择了需要提取的特征,确定了时序数据特征提取数据集的长度并对先验知识建模之后,就需要利用工具搭建特征提取系统。科研机构围绕不同问题域搭建的开源时序数据特征提取工具已经不少,我们可以利用这些工具快速实现希望达成的算法效果。下面…

[附源码]Python计算机毕业设计Django的残障人士社交平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

相控阵天线(十):波束跃度、虚位技术、幅度相位误差分析(含代码)

目录简介波束跃度不同移相器位数对方向图的影响不同移相器位数对波束跃度的影响虚位技术不同虚位位数对指向精度的影响不同虚位位数对副瓣电平的影响幅度相位误差分析随机误差周期误差Python代码示例简介 阵列天线的成本、批量和可制造性等实际问题的解决方案的选择直接影响阵…

[msyql]实战:关于回表的一次查询优化实战

起因与前置环境思考与解决方案 第一个理解与方法——分块分页第二个理解与方法——拆分子查询第三个理解与方法——拆分子查询分块分页 原理浅析与总结 回表和索引覆盖的浅解 原理简单说明MYSQL中回表的实现 总结与收获 起因与前置环境 目前在职的公司是已经运转挺久的电商类…

leetcode 343. 整数拆分(动态规划)

题目链接:343. 整数拆分 动态规划 (1) 确定 dpdpdp 数组下标含义: dp[i]dp[i]dp[i]: 将 iii 拆分为至少两个正整数之后的最大乘积; (2) 确定递推公式: 当 i≥2i \ge 2i≥2 时, 设 jjj 是 iii 拆分出来的第一个正整数&#xff0c…