Docker有哪些常见命令?什么是Docker数据卷?

117ba73acf2682417ff87918772000d9.gif

喜欢就点击上方关注我们吧!

2cf37e4ead7a79eaa52f2b482b64b682.png

哈喽,大家好呀!这里是码农后端。上一篇我们介绍了Docker的安装以及腾讯云镜像加速源的配置。本篇将带你学习Docker的常见命令、数据卷及自定义镜像等相关知识。

9c16ab9c9ad6ca9fc571ca8d47cf4480.jpeg

1、什么是镜像与容器?

c22cdc0260dae021a91e83876d1aef21.png

利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image)

镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker会在运行镜像时创建一个隔离环境,称为容器(container)

镜像仓库:存储和管理镜像的平台。

Docker官方维护了一个公共仓库:Docker Hub。

官网:https://hub.docker.com/

2、部署MySQL及命令分析

2.1 部署命令
docker run -d \--name mysql \-p 3306:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123 \mysql
2.2 命令分析

b1e78235df74834079c1fb39c0753e27.png

1)docker run:创建并运行一个容器,-d是让容器在后台运行

2)--name mysql:给容器起名,必须唯一

3)-p 3306:3306:设置端口映射

4)-e KEY=VALUE:设置环境变量

5)mysql:指定运行的镜像的名字

注:镜像名称一般由两部分组成:[repository]:[tag]。其中repository就是镜像名,tag是镜像的版本;当没有指定tag时,默认是latest(即最新版本的镜像)

6)参数总结

-d : 让容器后台运行。

--name : 给容器命名。

-e : 环境变量

-p : 宿主机端口映射到容器内端口,如 -p 80:80 \

3、Docker常见命令

3.1 常见命令

Docker最常见的命令是操作镜像、容器的命令。

官方文档: https://docs.docker.com/

常用的命令归纳如下图,各命令代表含义也在图中标明。

be4707e405e0bc5b7caa2517831b767e.png

3.2 举例说明

1)查看容器运行状态:

docker ps

348aa4149c879e1e234c520c59b3633e.png

上述看起来比较混乱,可以使用如下格式化方式访问,看起来更加规范清楚

docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"

36dfdc9205adda03f74289b92f0f92ae.png

2)进入容器内部

docker exec

fddaa7bbbd73f78bb197b3240a491298.png

注:-it代表添加一个可输入的终端,bash代表进入容器后以命令行的方式进行交互。

其他命令自行尝试。

3.3 命令别名

使用格式化方式查看容器运行状态时,对应的命令较长且不好记,此时就可以为其取别名。

1)使用vi命令进入如下文件

vi ~/.bashrc

2)在文件内部自定义别名

如将格式化方式查看容器运行状态的命令起别名为 dps;按 i进入编辑模式,使用上下方向键定位到待插入的地方,插入如下代码:

alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'

查看所有本地镜像的命令起别名为 dis。

alias dis='docker images'

0d41dc1b292397b656e9f699a81a7924.png

仅供参考,具体可以根据个人喜好设定。

添加好自定义的别名后,按 esc回到命令模式,输入 :wq 保存并退出。

3)最后,执行命令使别名生效

source /root/.bashrc

好了,以后就开心地可以使用别名了。

4、Docker数据卷

4.1 常见命令

数据卷(volume)是一个虚拟目录,它将宿主机目录映射到容器内目录,方便我们操作容器内文件,或者方便迁移容器产生的数据。

简单理解:数据卷就是容器内目录与宿主机目录之间映射的桥梁。

如下是数据卷的常见命令,直接记最后一个单词即可;也可在终端输入 docker volume --help查看。

1)创建数据卷

docker volume create

2)查看所有数据卷

docker volume ls

3)删除指定数据卷

docker volume rm

4)查看某个数据卷的详情

docker volume inspect

5)清除数据卷

docker volume prune
4.2 数据卷挂载

1)在创建容器时,利用 -v 数据卷名:容器内目录完成挂载

2)容器创建时,如果发现挂载的数据卷不存在,则会自动创建

3)案例:

7f3638398d74c49ce76b15f2cd1ad28c.png

分析:

宿主机目录与html卷进行映射,而html卷又与容器目录进行映射,所以宿主机目录间接地与容器目录产生映射关系。

5、本地目录挂载

1)在执行docker run命令时,使用 -v 本地目录:容器内目录,可以完成本地目录挂载

注:本地目录必须以“/”或“./”开头,如果直接以名称开头,会被识别为数据卷而非本地目录。

2)示例

如下会被识别为一个数据卷叫mysql

-v mysql : /var/lib/mysql

如下会被识别为当前目录下的mysql目录

-v ./mysql : /var/lib/mysql

6、自定义镜像

6.1 镜像结构

镜像中包含了应用程序所需要的运行环境、函数库、配置、以及应用本身等各种文件,这些文件分层打包而成。

df7cb40678fe90101b09d11e161ad14f.png

6.2 Dockerfile

1)Dockerfile是一个文本文件,其中包含一个个的指令(Instruction)。

指令用来说明要执行何种操作来构建镜像;将来Docker可以根据Dockerfile帮我们构建镜像。

简言之,Dockerfile就是利用固定的指令来描述镜像的结构和构建过程。常见指令如下

e4607cdec8aaa752874c01aaa0cc831b.jpeg

2)构建镜像的命令

docker build -t 镜像名 Dockerfile目录

7、容器网络互联

1)默认情况下,所有容器都是以bridge方式连接到Docker的一个虚拟网桥上

c54d8efc8b261d8a43d58ed3f1a107e4.jpeg

2)只有加入自定义网络的容器才能通过容器名互相访问

通过自定义的网络,以后就能非常方便地进行容器间的相互访问。直接通过容器名访问,而非IP地址。

Docker的网络操作命令如下:

命令说明
docker network create创建一个网络
docker network ls查看所有网络
docker network rm删除指定网络
docker network prune清除未使用的网络
docker network connect使指定容器连接加入某网络
docker network disconnect使指定容器连接离开某网络
docker network inspect查看网络详细信息

无需死记,具体的使用方法可以通过 docker network --help 和 docker network connect --help 两个命令查看

131ec5119b114ecbad0676392f8507c3.png

8、DockerCompose

1)概述

Docker Compose通过一个单独的docker-compose.yml模板文件,来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署

如下,左边是使用 docker run 方式创建并运行容器,右边是使用Docker Compose模版文件定义的容器。

8ce495328ea5abb4b21f88b2b8dc09a9.jpeg

2)命令格式

docker compose [OPTIONS][COMMAND]

513cc35c1b17ddea966bfd096c3919e1.png

好了,以上就是今天这篇文章的全部内容了。如果你想及时看到我的文章,只需做这几个动作:点星标、点在看(包括赞)、评论、分享,我就会经常出现在您的常读列表,后面更新都会提醒。感谢大家的关注和支持,祝大家生活美满,学业有成,事业蒸蒸日上!

da9685c8708f3c7e1cc5d0079a9fe534.gif

喜欢就点击上方关注我们吧!

5e8309eb7cc53d39e144af908da24a5e.png

往期精彩文章推荐(点击下方蓝字即可阅读!)

往期推荐

支付宝红包又来了!!这次真的非常大!

五一快乐!!假期红包大放送!超大超多红包送不停,福气多多~手慢无!

2分钟带你快速了解什么是MyBatisPlus及其核心功能!

如何注册一个自己的域名?如何创建阿里云ECS云服务器?


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

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

相关文章

电容的理论基础

目录 1.电容的本质: 2.电容量的大小 2.1电容的单位 2.2电容的决定式 ​编辑3.电容的特点 5.电容器的类型 6.电容实际的电路模型 7.安装方法 ​编辑8.电容值 9.电容的耐压、封装 10.阻抗-频率特性 11.频率特性 12.等效串联电组ESR 13.电容器的温度特性…

MATLAB 数据类型

MATLAB 数据类型 MATLAB 不需要任何类型声明或维度语句。每当 MATLAB 遇到一个新的变量名,它就创建变量并分配适当的内存空间。 如果变量已经存在,那么MATLAB将用新内容替换原始内容,并在必要时分配新的存储空间。 例如, Tota…

命令执行。

命令执行 在该项目的readme中,描述了怎么去调用的flink 通过java原生的runtime来调用flink,下一步就是去看看具体的调用过程了,是否存在可控的参数 找到具体提交命令的类方法CommandRpcClinetAdapterImpl#submitJob() 这里要确定command&am…

TiDB 6.x 新特性解读 | Collation 规则

对数据库而言,合适的字符集和 collation 规则能够大大提升使用者运维和分析的效率。TiDB 从 v4.0 开始支持新 collation 规则,并于 TiDB 6.0 版本进行了更新。本文将深入解读 Collation 规则在 TiDB 6.0 中的变更和应用。 引 这里的“引”,…

用Redis实现获取验证码,外加安全策略

安全策略 一小时内只能获取三次,一天内只能获取五次 Redis存储结构 代码展示 import cn.hutool.core.util.RandomUtil; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.jupiter.api.Test; import org.spri…

SD8942 600KHz、16V、2A同步降压转换器芯片IC

一般说明 该SD8942是一个完全集成,高效率2A同步整流降压转换器。SD8942在宽输出电 流负载范围内以高效率运行。该器件提供两种工作模式,PWM控制和PFM模式开关控制,它允许在更宽的负载范围内的高效率。 该SD8942需要一个现成的标…

Flink面试(1)

1.Flink 的并行度的怎么设置的? Flink设置并行度的几种方式 1.代码中设置setParallelism() 全局设置: 1 env.setParallelism(3);  算子设置(部分设置): 1 sum(1).setParallelism(3) 2.客户端CLI设置&#xff0…

电脑开机后卡在开机LOGO画面如何排查处理

当电脑开机后长时间停滞在开机LOGO画面,无法继续进入操作系统,这一现象常令用户困扰不已。本文将深入探讨导致此类问题的多种可能原因,并提供相应的解决方法,帮助你有效地诊断和排除故障。 硬件故障或接触不良 1. 硬盘问题:硬盘是系统启动的关键组件,其故障或数据线接触…

大数据分析与应用实验(黑龙江大学)

实验一 Hadoop伪分布式实验环境搭建与WordCount程序 一、实验目的 1、学习搭建Hadoop伪分布式实验环境 2、在伪分布式实验环境下运行WordCount程序 二、实验内容 1、搭建Hadoop伪分布式实验环境,并安装Eclipse。 2、在Eclipse环境下,编写并执行Wor…

MongoDB的安装(Linux环境)

登录到Linux服务器执行 lsb_release -a ,即可得知服务器的版本信息为:CentOS 7。 # CentOS安装lsb_release包 [rootlinux100 ~]# sudo yum install redhat-lsb# 查看Linux版本 [rootlinux100 ~]# lsb_release -a LSB Version: :core-4.1-amd64:core-…

网络服务SSH-远程访问及控制

一.SSH远程管理 1.SSH介绍 SSH(Secure Shell)是一种安全通道协议,最早是由芬兰的一家公司开发出来,并且在IETF (Internet Engineering Task Force)的网络草案基础上制定而成的标准协议。主要用来实现字符…

IP地址的定位精度及其影响因素

IP地址作为互联网通信的基础,其定位精度对于许多应用至关重要,如网络安全、市场营销和用户定位等。然而,IP地址的定位精度受到多种因素的影响,本文将探讨这些因素以及它们对IP地址定位精度的影响。 IP地址查询:IP66_i…

windows ubuntu sed,awk,grep篇,8,Awk 语法和基础命令

目录 51.Awk 命令语法 52.Awk 程序结构(BEGIN,body,END)区域 53.打印命令 54.模式匹配 Awk 是一个维护和处理文本数据文件的强大语言。在文本数据有一定的格式,即每行数据包 含多个以分界符分隔的字段时,显得尤其有用。即便是输入文件没有一定的格式&a…

sCrypt全新上线RUNES功能

sCrypt智能合约平台全新上线一键etch/mint RUNES功能! 请访问 https://runes.scrypt.io/ 或点击阅读原文体验! 关于sCrypt sCrypt是BSV区块链上的一种智能合约高级语言。比特币使用基于堆栈的Script语言来支持智能合约,但是用原生Script编…

微信小程序实时日志使用,setFilterMsg用法

实时日志 背景 为帮助小程序开发者快捷地排查小程序漏洞、定位问题,我们推出了实时日志功能。开发者可通过提供的接口打印日志,日志汇聚并实时上报到小程序后台。开发者可从We分析“性能质量->实时日志->小程序日志”进入小程序端日志查询页面&am…

《异常检测——从经典算法到深度学习》27 可执行且可解释的在线服务系统中重复故障定位方法

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …

AI 工具合集

以下工具来源于互联网,可能会失效,请参考使用 网红工具 名称链接说明GPT-4https://chat.openai.com/ 需要梯子,需要付费。功能最强大的聊天机 器人。 文心一言https://yiyan.baidu.com/welcome 国内版 GPT,需要申请账号。回答问…

ChromaDB教程

使用 Chroma DB,管理文本文档、将文本嵌入以及进行相似度搜索。 随着大型语言模型 (LLM) 及其应用的兴起,我们看到向量数据库越来越受欢迎。这是因为使用 LLM 需要一种与传统机器学习模型不同的方法。 LLM 的核心支持技术之一是…

IDEA使用技巧(常用设置、快捷键等)

IDEA使用技巧 一、IDEA常用基本设置设置代码背景颜色/主题/字体Ctrl鼠标滚轮缩放字体大小设置字符编码左右两侧的Project,Structure,Maven等按钮消失新增类似sout,psvm的模版切换某个模块编译的JDK版本 二、常用快捷键CtrlAltT包裹代码Alt回车联想补全Ct…

How to solve matplotlib Chinese garbled characters in Ubuntu 22.04

conda create -n huizhou python3.8conda activate huizhouconda install numpy matplotlibpip install mplfontsmplfonts init# 导入必要的库 import numpy as np import matplotlib.pyplot as plt# 创建角度数组,从0到2π x np.linspace(0, 2 * np.pi, 100)# 计算…