2024年最新Docker容器的简单介绍与使用_学习容器引擎docker的使用(1)

sed -i ‘s/download.docker.com/mirrors.aliyun.com/docker-ce/g’ /etc/yum.repos.d/docker-ce.repo

yum makecache fast


![在这里插入图片描述](https://img-blog.csdnimg.cn/f3347cc0aaa34e3ea8e4084720fe1c7b.png)  
 然后安装docker-ce版本,docker一个有两个版本,一个为ce版本,一个为ee版本,ce版本是社区版本,免费使用,ee版本为企业版本,比较安全,但需要付费使用,ce版本可以满足我们学习docker的需求了,因此我们这里以ce版本为例,稍等片刻即可安装成功:



yum install -y docker-ce


![在这里插入图片描述](https://img-blog.csdnimg.cn/910b70f286894514873e1996ddfcd3e8.png)  
 我们在启动docker的时候需要用到很多端口,因此需要关闭防火墙,这里我们在启动docker之前先将防火墙关闭:



关闭防火墙

systemctl stop firewalld

禁止开机启动防火墙

systemctl disable firewalld


![在这里插入图片描述](https://img-blog.csdnimg.cn/037d810e6cbd4131a1e377e3ed9cfecb.png#pic_center)  
 关闭防火墙后,我们即可通过命令来启动docker:



systemctl start docker # 启动docker服务


启动完成后,我们可以通过命令才查看docker的启动状态:



systemctl status docker //查看docker启动状态


![在这里插入图片描述](https://img-blog.csdnimg.cn/079842115f014b4d85f0a3512bc43287.png)  
 我们可以通过查看docker的版本来测试docker是否启动,运行命令看看是否有docker版本即可:



docker -v


如果想要关闭或重启docker,也可运行命令将docker关闭或重启:



systemctl stop docker # 停止docker服务

systemctl restart docker # 重启docker服务


最后,我们需要配置镜像加速,在前面我们选择的阿里云镜像,在这里我们也可以选择阿里云的镜像加速,这里是阿里云的镜像操作文档地址:[点击进入阿里云镜像加速操作文档](https://bbs.csdn.net/topics/618545628)  
 我们选择自己的虚拟机系统,在finalshell终端运行文档中的命令即可  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d1fda6fbf53a47bc86574a14881d1ed4.png)


## 🚙Docker镜像命令


首先先解释一下镜像和容器。  
 镜像(Image):Docker将应用程序和其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。  
 容器(Container):镜像中的应用程序运行后形成的进程就是容器,Docker会给容器做隔离,对外隔离。


接着聊运行镜像名称的组成。一般情况下镜像名称由仓库和版本号组成([repository]:[tag]),如果没有指定tag版本,默认是最新版本的镜像(latest)。


获取docker镜像和git差不多,我们可以从本地dockerfile构建镜像,也可以从docker registry镜像服务器中拉取(docker pull)镜像。同时如果我们想要分享镜像给其他人,可以将镜像保存为压缩包(docker save),也可以将其他朋友分享的压缩包加载为镜像(docker load)。


对这些docker命令感兴趣的话,可以在终端查看docker命令帮助文档(docker --help)。


接下来我们从DockerHub(一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry)中拉取一个nginx镜像作为案例:  
 第一步先去镜像仓库找到nginx镜像,首先进入DockerHub中搜索nginx,第一条就是官方正版nginx镜像:[点击进入DockerHub](https://bbs.csdn.net/topics/618545628)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1f92f9621e94452691206e1cea13cae5.png)  
 点击进入,会看到拉取nginx镜像的指令:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4c47d8fdcd1443159449a30d18b08dd5.png)  
 复制docker pull nginx指令,在finalshell终端执行指令,由于我们没有指定版本,所以加载的nginx镜像为最新版。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/caf9993d40194b82b4b649de44ec300c.png)


通过docker images命令查看下载的镜像:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/586ceec7602e46b3a896352a635767b4.png)  
 我们可以使用docker save [OPTIONS] IMAGE [IMAGE]指令来保存我们下载的镜像(-o表示output输出,在后面需指定输出到哪个文件夹,如果没有此文件夹的话会自动建立这个文件夹,nginx:latest表示仓库为nginx,版本为latest):



[root@localhost ~]# docker save -o nginx.tar nginx:latest


执行命令完成后,通过ll来查看文件夹:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/08e2b6b4b6464470ad6253f1e7ec1138.png)  
 这里有了压缩包,我们可以把我们的镜像移除,然后再加载压缩包,移除镜像后发现这个镜像已经不存在了(docker rmi \*\*\*)rmi 全称为 remove images:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4e053dcb45d14ca78cb9d38a2c8eb994.png)  
 之后我们可以将移除的镜像加载回来(docker load [OPTIONS]):  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/aaee799db6b94ccf916f7590000b42d5.png)  
 通过docker images可以看到我们的nginx镜像又回来了~!  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/785da251809f4e97a61693fb588ddcb2.png)


## 🚗Docker容器相关命令


docker run 创建一个容器,并且可以让容器处于运行状态;  
 docker pause 使运行中的容器处于暂停状态,操作系统将容器内的进程挂起,保存容器内存,CPU不再执行此进程;  
 docker unpuase 使暂停中的容器恢复运行状态,内存空间恢复,程序继续运行;  
 docker stop 使运行中的容器进入停止状态,进程杀死,容器所占的内存被回收;  
 docker start 使停止状态的容器恢复运行状态,会创建全新的进程;  
 docker ps 查看所有运行的容器及其状态;  
 docker logs 查看容器的运行日志;  
 docker exec 进入容器内部执行命令;  
 docker rm 删除指定的容器


以docker run命令为例,我们后面需要跟参数,这个可以参考DockerHub上面的命令描述,比如运行nginx容器,如下指令:  
 docker run表示创建并运行一个容器,–name表示给创建的容器起一个名字,比如mn,-p(暴漏容器端口,让外界可以访问容器)后面有两个端口,实际上冒号左侧为宿主机端口,冒号后面为我们的容器端口; -d表示可以后台运行容器,比如说我们的一些应用可以后台运行;最后nginx为镜像的名称,因为默认是最新版本,所以latest可以省略。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c719f9ee674c41b981aed7e81950c88d.png)  
 运行之后返回了一坨数据,这是容器的唯一ID,我们可以通过docker ps来查看容器上面有显示镜像,创建时间,状态up表示运行中,端口号,名称等等:![在这里插入图片描述](https://img-blog.csdnimg.cn/5ffb122614f14933a38502df372a91cb.png)  
 在这之后,docker算是开启了,我们再浏览器输入我们的虚拟机IP地址,加上80端口,会请求到容器


![在这里插入图片描述](https://img-blog.csdnimg.cn/5df410e358e2414a8dd65df839254f4b.png)


同时我们可以通过docker命令来查看日志,docker logs mn,mn是我们刚才创建的容器名称,这个要带上:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9352e5b82dfc40b2aceec9c1b70bd4e4.png)


可以看到发送了一次get请求。  
 如果想要持续查看日志,带上-f参数即可,即docker logs -f mn。


接下来康康我们创建的nginx容器中都有什么,在finalshell终端输入指令:



docker exec -it mn bash


docker exec指令意为进入容器内部,-it表示给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互,mn为我们创建的nginx容器名称,bash意思是进入容器后执行的命令,bash是一个linux终端交互命令。  
 进入到容器之后,我们切换目录,找到首页的界面,cat index.html,查看首页的内容,与我们刚才访问浏览器的界面一样。  
 ![。](https://img-blog.csdnimg.cn/1f3cc909d30c4e1796fa6acdd59dd3e6.png)  
 从上图中科院看到Welcome to nginx!但是我们不能通过Linux的vi或vim命令来修改文字,我们需要以docker容器的命令来达到我们的目的,即在终端输入以下内容:



sed -i ‘s#Welcome to nginx#小威要向诸佬学习呀#g’ index.html
sed -i ‘s###g’ index.html


![在这里插入图片描述](https://img-blog.csdnimg.cn/534562d974694e9ab117287dd5d1e4e3.png)  
 执行完命令之后退出(exit),重新在浏览器访问我们的地址,可以看到页面发生了变化:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/389fc108ffe8475f8abd4b2938141bea.png)  
 当然,如果我们想删除此容器,也可以执行指令docker rm mn删除容器。


本篇文章就先分享到这里了,后续会继续分享其他的知识,感谢大佬认真读完支持咯~  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9bf9b34eed904c8d96da425b5095e30c.gif#pic_center)



![img](https://img-blog.csdnimg.cn/img_convert/495aee257edb85749493fc4fdc5c1107.png)
![img](https://img-blog.csdnimg.cn/img_convert/b2f3471fb65e262c731abd814e4f37ad.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值