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.mzph.cn/diannao/4838.shtml

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

相关文章

提示词工程入门-使用文心一言4.0-通义千问-GPT4-Claude3通用提示技巧测试

提示词工程基础🚀 在了解完了大语模型的基本知识,例如API的使用多轮对话,流式输出,微调,知识向量库等知识之后,接下来需要进一步补足的一个大块就是提示词工程,学习和了解提示词工程除了基本的提…

利用GaussDB的可观测性能力构建故障模型

D-SMART高斯专版已经开发了几个月了,目前主要技术问题都已经解决,也能够初步看到大概的面貌了。有朋友问我,GaussDB不已经有了TPOPS了,为什么你们还要开发D-SMART高斯专版呢? 实际上TPOPS和D-SMART虽然都可以用于Gaus…

实验案例二:配置Trunk,实现相同VLAN的跨交换机通信

1.实验环境 公司的员工人数已达到100人,其网络设备如图12.13所示。现在的网络环境导致广播较多 网速慢,并且也不安全。公司希望按照部门划分网络,并且能够保证一定的网络安全性 其网络规划如下: PC1和 PC3为财务部,属于 VLAN 2&…

MySQL库表占用空间排序

在进行数据库备份恢复时,经常会碰到耗时很长的问题。大概率是因为某些库表的占用空间太大。 以下语句按照库表占用空间大小,进行降序排序: SELECT table_schema AS Database,table_name AS Table,ROUND((data_length index_length) / 1024…

Json数据概念及C# 环境下的序列化、反序列化操作

什么是Json? JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式,主要用于数据的序列化和交互。常用于Web中,其他领域也经常出现JSON的身影。 与xml相比,更快,更小,更容易解析…

Linux搭建局域网私有yum仓库/配置本地光盘镜像仓库/搭建公有yum仓库--7700字详谈

帮助与补全功能 1.补全 yum (options)COMMAND check check-update clean deplist downgrade erase fs fssnapshot groups help history info install list makecache provides reinstall repo-pkgs repolist search shell swap update update-minimal …

【数学建模】DVD在线租赁

2005高教社杯全国大学生数学建模竞赛题目B 随着信息时代的到来,网络成为人们生活中越来越不可或缺的元素之一。许多网站利用其强大的资源和知名度,面向其会员群提供日益专业化和便捷化的服务。例如,音像制品的在线租赁就是一种可行的服务。这…

如何有效的将丢失的mfc140u.dll修复,几种mfc140u.dll丢失的解决方法

当你在运行某个程序或应用程序时,突然遭遇到mfc140u.dll丢失的错误提示,这可能会对你的电脑运行产生一些不利影响。但是,不要担心,以下是一套详细的mfc140u.dll丢失的解决方法。 mfc140u.dll缺失问题的详细解决步骤 步骤1&#x…

【TDengine】mac m1解决no taos in java.library.path

前言 使用macos搭建springbootmybatisplus,通过mqtt将数据更新到tdenigne 3.2.3,数据源使用远程服务器的tdengine。 问题 启动时报错: Caused by: java.lang.UnsatisfiedLinkError: no taos in java.library.path 以下是官方文档 打开本…

华为校招机试 - 满二叉搜索树查找(20240424)

在线OJ测试 题目详情 - 满二叉搜索树查找 - HydroOJ 题目描述 给定 (2^n) - 1 个不同的整数(1 ≤ n ≤ 10,n 为整数),构建一棵平衡满二叉搜索树。 二叉搜索树定义如下: 节点的左子树只包含小于当前节点的数节点的右子树只包含大于当前节点的数所有左子树和右子树自身必…

RCE复习(ctfhub下)

先了解一下命令注入的知识点: 知识点 1、常见的拼接符 A ; B 先执行A,再执行BA & B 简单的拼接A | B 显示B的执行结果A&&B A执行成功之后才会执行BA || B A执行失败之后才会执行B , 在特殊情况下可代替空格…

算法学习002-填数游戏 中小学算法思维学习 信奥算法解析 c++实现

目录 C填数游戏 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C填数游戏 一、题目要求 1、编程实现 在小学奥数中经常会看到一些填数字的游戏,如下图所示,其中每个…

【PostgreSQL】pg触发器介绍

注: 本文为云贝教育 刘峰 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。 触发器是在对指定表执行指定更改操作(SQL INSERT、UPDATE、DELETE 或 TRUNCATE 语句)时自动运行的一组操作…

3个IE还不够?誉天大牛学员:我要学5个!

乔同学 誉天4HCIERHCA学员 2018年盛夏,在那个充满了炙热与躁动的青春里,因为考HCIA-R&S,我和誉天相遇了。我想,大概是从那个时候开始,命运的齿轮便发生了转动,为我打开了通往ICT的大门。 时至今日&…

vue2左侧菜单栏收缩展开功能

目录 1. Main.vue页面代码 a. 修改侧边栏属性 b. 修改头部导航栏 c. 定义我们的变量 d. collapse函数 2. Header.vue页面代码 3. Aside.vue页面代码 vue2左侧菜单栏收缩展开目前是非常常见的,我们在日常开发过程中经常会碰到。这一小节我们就详细了解一下这个…

如何使用PHPMyAdmin进行数据库备份

本周有一个客户,购买Hostease的虚拟主机,询问我们的在线客服,如何使用PHPMyAdmin进行数据库备份。我们为用户提供教程,用户很快完成了设置。在此,我们分享这个操作教程,希望可以对您有帮助。 它适用于安装P…

笔试刷题-Day10

牛客 一、DP30买卖股票的最好时机(一) 算法:虽然题目标了DP但是用贪心更快页更容易理解 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Sca…

动态规划-子序列问题1

文章目录 1. 最长递增子序列(300)2. 摆动序列(376)3. 最长递增子序列的个数(673)4. 最长数对链(646) 1. 最长递增子序列(300) 题目描述: 状态表…

气血足不足主要看看两个部位这些补气血的调理方法帮到您

气血足不足,关键看这两处:1、观耳识气血:红润饱满,弹性十足,这便是气血旺盛的直观表现。然而,随着年龄的增长,许多人会发现耳朵逐渐松弛、出现皱纹,这往往暗示着气血的流失。这里有个…