• 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}}"'

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

    验证:

     

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

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

  • 相关阅读:
    SpringBoot 集成 RocketMQ
    函数指针与回调函数
    office实操技能02:多行公式在指定的字符处对齐
    从一道面试题看函数柯里化
    C++实现红黑树
    力扣第17题 电话号码的字母组合 c++ 回溯 经典提升题
    NodeRed Modbus学习一(配置Modsim32)
    SpringBoot配置kafka
    【代码随想录算法训练营】第48天 | 第九章 动态规划(九)+ 复习第20天 第六章 二叉树(四)
    phpcms头像上传漏洞
  • 原文地址:https://blog.csdn.net/LYJbao/article/details/133894123