Linux上Docker的安装以及作为非运维人员应当掌握哪些Docker命令

目录

前言

1、安装步骤

2、理解镜像和容器究竟是什么意思

2.1、为什么我们要知道什么是镜像,什么是容器?

2.2、什么是镜像?

2.3、什么是容器?

2.4、Docker在做什么?

2.5、什么是镜像仓库?

2、Docker的常用命令

2.1、大致要了解哪些命令

2.2、拉取/推送镜像

2.3、操作本地镜像

 2.4、容器操作

2.5、公司中如何把你创建的镜像给其他同事

3、案例:部署MySQL

3.1、需求:

3.3、查看本地镜像列表

3.4、保存本地镜像

  3.5、删除镜像 

3.6、通过压缩包,加载镜像

3.7、创建运行 / 停止容器

​编辑

3.8、查看容器日志

3.8、进入容器内部

3.9、查看docker有哪些容器

3.10、简化查询信息的列

优化:给命令设置别名


前言

        本博主使用的Xshell来操作的,使用其他的软件也都是一样的


1、安装步骤

卸载旧版

命令: 

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

安装yum工具

命令:

yum install -y yum-utils

已经安装了yum的伙伴,就不用安装了

配置Docker的yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装Docker

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动Docker

systemctl start docker

停止Docker

systemctl stop docker

重启Docker

systemctl restart docker

设置Docker开机自启

systemctl enable docker

 查看Docker是否安装

 输入命令:docker -v

会看到docker的版本~

再输入命令:docker images

        可以看到这类似信息,就说明,安装是成功的,如果说,执行失败了,那可能是你还没有启动docker,安装上面的命令启动一下,就可以了~        


2、理解镜像和容器究竟是什么意思

2.1、为什么我们要知道什么是镜像,什么是容器?

        因为,Docker使用时,我们使用哪个小工具,就需要先去拉去他的Docker镜像,然后为其创建一个容器。哈哈哈,是不是听不懂,没关系,下面我们来看看什么是镜像,什么是容器,就明白了~

2.2、什么是镜像?

        我们现在回想一下,我们在自己的Windows电脑上,安装软件时,是不是需要先下载软件包,然后再点击安装并指定安装目录。当我们安装成功后,去到你刚才指定的安装目录看看,会看到,它里面有很多的很多的文件,都是供你这个软件来使用的。同学思考并回想自己有没有经历过:我们把刚才下载的这个软件的所有文件压缩成一个小压缩包,把这个压缩包发送到其他朋友的电脑中并解压到指定目录,这个软件就可以直接使用了无需安装~ 这个操作就相当于是一个绿色通道安装软件了,操作更简洁了~ 其实Docker的镜像,就是类似是这样的解压后的压缩包~

        因为在Linux上安装软件,会比较繁琐,例如安装MySQL,我们需要先下载MySQL的安装包,然后再下载MySQL的依赖,开始正式安装MySQL,安装结束后,还要进行一系列的配置,非常的繁琐。那我们可不可以将这个MySQL、MySQL依赖、MySQL的配置信息一起打包成一个压缩包,那我们拿到这个压缩包后,是不是直接解压缩后,就可以正常使用了。其实Docker的镜像,就是类似这样的存在~

        上述的例子,并不完全正确,因为例如我们在自己的软件是win32的,我们打包给朋友,朋友电脑是win64的,那他是不是也没法正常使用呀?但是???Docker可以!!!Docker给我们的这个镜像中,就会包含一些环境,还有系统函数库,那我们的镜像就可以依赖于他自己的系统函数库了。因此,镜像是把对应软件所在的系统环境及函数库一起打包了。这样一来就可以实现跨系统运行了~

        总结:镜像不仅包含了该应用本身,还包含了应用运行所需要的环境、配置、系统函数库~

2.3、什么是容器?

        当我们下载了Docker镜像后,运行我们的镜像时,Docker会给他创建一个隔离环境,这个环境就叫做容器 。

        所谓的隔离,其实就是你运行的这个东西,跟其他进程是相互隔离的,互不干扰~ 例如我们拉取了一个MySQL镜像,我们将其运行起来,创建了容器1,我们再运行一次,就可以创建容器2了【但是要注意端口号重复这个问题~ 具体原因,后续演示命令操作时,我们会做具体解释~】,这样一来,我们就可以在同一台服务器上搭建集群了~

        总结:我们可以把容器理解为是一个小的操作系统,而这个操作系统里面只有一个应用,就是这个镜像所对应的应用~

2.4、Docker在做什么?

        Docker就是帮助我们下载应用镜像,创建并运行镜像的容器,从而快速部署应用~ 

2.5、什么是镜像仓库?

        镜像仓库:镜像管理和保存的一个地方。全球的通用的镜像仓库:http://hub.docker.com/  但这是在外国的,访问起来,有些困难~  一般,公司里会有自己的镜像仓库,从这个上面拉取会好一点~


2、Docker的常用命令

详细内容,可去看官方文档:https://doccs.docker.com/ 

下面先介绍常用命令,后面会实战操作一下~ 

2.1、大致要了解哪些命令

        用一张图,来看一下,我们需要了解哪些命令:

        这是一个大致的主线~

        主要就是拉取镜像,推送镜像,运行容器,停止/重启容器~  其实不止这些,还包括其他的操作,如下看:

2.2、拉取/推送镜像

  1. 拉取:docker pull
  2. 推送:docker push
  • 拉取:就是我们要使用别人已经配置好的应用
  • 推送:就是我们在公司里,可能需要我们自己配置一些应用,做好后,推送到公司的镜像仓库,供其他的同事使用~

2.3、操作本地镜像

  1. 查看本地有哪些镜像:docker images
  2. 删除本地镜像:docker rmi

 2.4、容器操作

  1. 创建并运行容器:docker run   【这个在创建并运行容器时,如果发现镜像不存在,会先去镜像仓库中拉取再创建运行~】
  2. 运行容器:docker start    【这里是,容器已经存在了;而docker run是容器还没有被创建】
  3. 停止容器:docker stop
  4. 查看容器日志:docker logs
  5. 进入容器内部:docker exec
  6. 查看本地有哪些容器:docker ps  【ps就是指查看进程状态的意思~】
  7. 删除容器:docker rm

2.5、公司中如何把你创建的镜像给其他同事

  • 方法一:把你的镜像拷到同事的U盘上,需要通过docker load命令把这个压缩包文件加载到他的镜像中
  • 方法二:公司会有一个镜像仓库,你把你打包好的镜像推送到镜像仓库中,你的同事从上面拉取即可~【推荐!!!】

3、案例:部署MySQL

3.1、需求:

  • 拉取Nginx镜像
  • 查看本地镜像列表
  • 创建并运行MySQL容器
  • 查看容器
  • 停止容器
  • 再次启动容器
  • 进入MySQL容器
  • 删除容器

3.2、拉取镜像

3.3、查看本地镜像列表

3.4、保存本地镜像

命令:

docker save -o 保存后的文件路径及文件名 镜像名

例:

  3.5、删除镜像 

3.6、通过压缩包,加载镜像

命令:docker load i- [压缩包名字]

3.7、创建运行 / 停止容器

创建并运行容器

命令:

docker run -d --name mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=1111 mysql

命令解释:

停止容器

 

运行容器

docker start 是运行已经被创建的容器

例:

3.8、查看容器日志

 

命令后面跟的是容器名字,如果想要持续追踪日志【就是说,你一直打开这个日志文件,有新的日志了,你会直接看到他在后面追加新日志】,你可以新打开一个窗口,来操作这个容器,当前窗口不动,输入命令:

 你在另一个窗口操作这个容器,这个窗口就会持续更新日志~

3.8、进入容器内部

命令;

命令解释:

  • docker exec就是进入容器
  • -it:进入容器后,如何和容器交互,-it就是指添加一个交互的终端
  • mysql:容器名
  • bash:进入容器用什么方式交互,-bash就是指用命令的方式交互
  • 下面我们看到,root后面有一串数字,这就是指我们已经进入容器内部了

使用ls-l命令试试看:

        这个看起来就像是文件系统的根目录。所以再次印证了我们上述说的,容器就是类似模拟了一个小的操作系统,他有自己独立的文件系统~

        那我们知道mysql容器中,肯定有MySQL的客户端,那我们进入MySQL客户端看看:

MySQL比较特殊,进入容器后,还需要进他的MySQL客户端,我们不用上述那么麻烦,一步也可以进去:

退出:exit 就可以了~

3.9、查看docker有哪些容器

 说明:

  • docker ps 指查看所有正在运行的容器,加上-a就是查看所有容器
  • up指正在运行
  • exited指容器已经被停止了~ 

3.10、简化查询信息的列

         例如我们上述使用的docker ps 查询出来的列特别多,而有些列的信息我们不关心,不想看,此时该怎么设置呢?

命令,举例:

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

每次都这样写,太麻烦,我们也可以直接配置一下:

优化:给命令设置别名

 进入目录:

命令:vim ~/.bashrc

进入后:

我们会看到系统原本已经配置过的别名,也就是说,我们日常使用的命令rm 其实是rm -i的意思~

例如,我们自己添加一个别名设置:

 

命令: alias docker_dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"'

保存退出,让这个文件生效,输入命令:

验证:

 

        通过这种方式,我们可以设置各种我们需要的命令~

好啦,本期结束啦,下期见~

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

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

相关文章

AN动画基础——缓动动画

【AN动画基础——影片剪辑滤镜】 基础动画缓动动画缓动原理实例应用 本篇内容:了解曲线原理 重点内容:缓动动画 工 具:Adobe Animate 2022 基础动画 我们先做一个非缓动的效果的动画。 绘制一个矩形设置成元件—图形,30帧插入关…

论文阅读 Memory Enhanced Global-Local Aggregation for Video Object Detection

Memory Enhanced Global-Local Aggregation for Video Object Detection Abstract 人类如何识别视频中的物体?由于单一帧的质量低下,仅仅利用一帧图像内的信息可能很难让人们在这一帧中识别被遮挡的物体。我们认为人们识别视频中的物体有两个重要线索&…

C# 取消一个不带CancellationToken的任务?

在异步函数中&#xff0c;一般使用CancellationToken来控制函数的执行。这个Token需要作为参数传递到异步函数中&#xff1a; public staic Task<T> DoAsync(CancellationToken token) {... } 那么如果一个异步函数没有这个Token参数&#xff0c;如何取消呢? 之前看到一…

TODO Vue typescript forEach的bug,需要再核實

forEach 一個string[]&#xff0c;只有最後一個匹配條件有效&#xff0c;其它條件無效。 所以&#xff0c;只能替換成普通的for循環。 console.log(taskList)// for (const _task of taskList.value) {// if (_task invoiceSendEmail) {// form.value.invoiceSendEmail…

Hadoop3教程(十五):MapReduce中的Combiner

文章目录 &#xff08;103&#xff09;Combiner概述什么是CombinerCombiner有什么用处Combiner有什么特点如何自定义Combiner &#xff08;104&#xff09;Combiner合并案例实操如何从日志里查看Combiner如果不存在Reduce阶段&#xff0c;会发生什么自定义Combiner的两种方式 参…

【非root用户、CentOS系统】中使用源码安装gcc/g++的教程

1.引言 系统&#xff1a;CentOS-7.9 显卡驱动版本&#xff1a;460 CUDA Version: 11.2 &#x1f33c;基于本地环境选择安装gcc-10.1.0 &#x1f449; gcc下载网址 2.安装说明 下载好对应的gcc的安装包并解压&#xff1a; 打开gcc-10.1.0/contrib/download_prerequisites&#…

关于gt_sampling的理解

pcdet/datasets/augmentor/data_augmentor.py def gt_sampling(self, configNone):db_sampler database_sampler.DataBaseSampler(root_pathself.root_path,sampler_cfgconfig,class_namesself.class_names,loggerself.logger)return db_sampler此函数指向DataBaseSampler类&a…

0基础学习VR全景平台篇第109篇:认识拼接软件PTGui Pro

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01;今天给大家讲解我们全景后期拼接软件PTgui pro&#xff0c;下面我们开始吧&#xff01; &#xff08;PTgui pro软件课程大纲&#xff09; 1.PTGui这个软件是什么 发明人 &#xf…

【网络编程】从网络编程、TCP/IP开始到BIO、NIO入门知识(未完待续...)

目录 前言前置知识一、计算机网络体系结构二、TCP/IP协议族2.1 简介*2.2 TCP/IP网络传输中的数据2.3 地址和端口号2.4 小总结 三、TCP/UDP特性3.1 TCP特性TCP 3次握手TCP 4次挥手TCP头部结构体 3.2 UDP特性 四、总结 课程内容一、网络通信编程基础知识1.1 什么是Socket1.2 长连…

Python之旅----判断语句

布尔类型和比较运算符 布尔类型 布尔类型的定义 布尔类型的字面量&#xff1a; True 表示真&#xff08;是、肯定&#xff09; False 表示假 &#xff08;否、否定&#xff09; 也就是布尔类型进行判断&#xff0c;只会有2个结果&#xff1a;是或否 定义变量存储布尔类型…

天猫店铺商品评论数据采集,天猫商品评论数据接口,天猫API接口

天猫店铺商品评论数据接口可以获取到商品ID&#xff0c;商品标题&#xff0c;商品优惠券&#xff0c;商品到手价&#xff0c;商品价格&#xff0c;商品优惠价&#xff0c;商品sku属性&#xff0c;商品图片&#xff0c;商品视频&#xff0c;商品sku属性图片&#xff0c;商品属性…

ant中的environment属性

在ant的配置文件中&#xff0c;可以设置属性environment的值&#xff0c;设置的这个值就作为访问环境变量的前缀。例如声明了environment“env”&#xff0c;那么就可以通过env.<环境变量名称>来访问环境变量。 例如创建了一个Java工程&#xff0c;在工程目录下有一个bu…

HCIA --- VLAN实验配置

一、各交换机上配置&#xff1a; 1、各交换机上创建VLAN 2、交换机上的各个接口划分到对应的VLAN中 3、将与交换机、路由器相连的接口创建trunk干道 SW1&#xff1a; [sw1]vlan batch 2 to 3 批量创建VLAN2-3 [sw1]interface Ethernet0/0/1 单独将某个接口划分到对应…

信息保卫战:揭秘迅软DSE护航企业免受泄密之害

随着网络技术的发展&#xff0c;通过网络应用如网盘、网页、邮件、即时通讯工具传输分享文件变得越来越多&#xff0c;这些工具传输速度快&#xff0c;能够将大容量的文档快速传送给他人&#xff0c;在工作中受到许多人的青睐。 然而由这些传输工具引发的泄密事件也不断增多&am…

视频怎么压缩?视频太大这样处理变小

在当今时代&#xff0c;视频已经成为了我们日常生活中不可或缺的一部分&#xff0c;然而&#xff0c;视频文件往往非常大&#xff0c;给我们的存储和传输带来了很大的不便&#xff0c;那么&#xff0c;如何有效地压缩视频呢&#xff1f; 一、使用压缩软件 首先我们给大家分享一…

供应商工厂突发爆炸,日本丰田7座工厂停工 | 百能云芯

根据日本共同社的最新报导&#xff0c;日本著名汽车制造商丰田汽车近期遭遇了一系列生产中断问题。这次生产中断的根本原因在于供应商公司发生了一起爆炸事件&#xff0c;导致零部件供应链受到了严重干扰&#xff0c;迫使丰田暂时停工。截至目前&#xff0c;这一事件已经影响了…

【触想智能】工业级触摸显示器的分类与应用分享

工业级触摸显示器是具有触摸功能的工业显示器&#xff0c;常见的触摸方式有电容触摸和电阻触摸。它是应用在工业上的设备&#xff0c;和普通的显示器有着很大的区别。 工业级触摸显示器由液晶触摸屏、功能主板、外壳三部分组成&#xff0c;结构用料一般都采用铝合金材质&#x…

配电房无人值守方案

随着科技的不断进步&#xff0c;许多传统需要人工操作和维护的领域逐渐被自动化和智能化方案所替代。配电房作为电力供应的核心部分&#xff0c;也面临着同样的变革。 力安科技电易云配电室无人值守监控系统以智能物联数据采集和智能物联管控"为关键&#xff0c;通过加…

自动化测试必会之数据驱动测试

数据驱动测试 在实际的测试过程中&#xff0c;我们会发现好几组用例都是相同的操作步骤&#xff0c;只是测试数据的不同&#xff0c;而我们往往需要编写多次用例来进行测试&#xff0c;此时我们可以利用数据驱动测试来简化该种操作。 参数化&#xff1a; 输入数据的不同从而产…

Linux性能优化--性能工具:特定进程内存

5.0 概述 本章介绍的工具使你能诊断应用程序与内存子系统之间的交互&#xff0c;该子系统由Linux内核和CPU管理。由于内存子系统的不同层次在性能上有数量级的差异&#xff0c;因此&#xff0c;修复应用程序使其有效地使用内存子系统会对程序性能产生巨大的影响。 阅读本章后&…