Docker知识点总结

二、Docker基本命令:

Docker支持CentOs 6 及以后的版本;
CentOs7系统可以直接通过yum进行安装,安装前可以

1、查看一下系统是否已经安装了Docker:

                yum list installed | grep docker

2、安装docker:

                yum install docker -y

        -y 表示自动确认,中途就不需要确认了,安装成功如下:

3、卸载docker:

        把这三个都卸载掉:

 4、查看docker版本:

                docker --version / docker -v

5、安装之后启动Docker服务:

                systemctl start docker 或者 service docker start

6、停止:

                systemctl stop docker 或者 service docker stop

7、重启:

                systemctl restart docker 或者 service docker restart

8、检查docker进程的运行状态:

                systemctl status docker 或者 service docker status

9、查看docker进程:

                ps -ef | grep docker

10、查看docker系统信息:

                docker info

11、查看所有的帮助信息:

                docker


12、查看某个commond命令的帮助信息:

                docker commond  --help

13、设置开机启动docker:

                systemctl enable docker
 

三、Docker的使用初体验

3.1、Docker的运行机制:

我们知道Docker并不是容器,而只是一个管理容器的引擎;

Docker的底层运行原理:
Docker服务启动→下载镜像→启动该镜像得到一个容器→容器里运行着我们想要的程序;

        我们在linux命令行操作时实质上相当于是docker引擎的客户端client,我们通过客户端发送一些指令,发送给docker daemon(docker里面核心的底部引擎),发送给它之后,docker容器引擎开始解析,首先它会去本地里找有没有这个镜像,如果有的话就直接启动起来这个镜像,得到对应的容器,程序就运行在容器里面;本地仓库没有这个镜像的话就去Registry仓库里找,去下载镜像,Registry是一个仓库,找到之后它就会下载。

3.2、 配置Docker镜像加速器

        默认情况下,将从docker hub(https://hub.docker.com/)上下载docker镜像,现在已经访问不了,所以配置一下镜像加速器:

         中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["镜像加速地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

# 示例
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]	
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3.3、 Docker 镜像相关命令
1、搜索镜像:

         从网络中查找需要的镜像:docker search 镜像名称
         例如: docker search tomcat  搜索tomcat镜像

2、下载镜像:

        从Docker 仓库下载镜像到本地,镜像名称格式为 名称号:版本号,如果版本号不指定则是最新的版本。如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。如果你反复执行pull,它会把这个镜像下载到最新版本。

                 docker pull 镜像名称

                 例如:docker pull  tomcat 


3、运行镜像:

                docker run tomcat     前台运行,前台运行的话 ctrl+c就可以关掉了

                docker run tomcat -d 后台运行,加参数-d

                docker run  镜像的ID号 -d

                docker run  名称号:版本号     -d

        docker run tomcat 报这个错:
        Cannot find /usr/local/tomcat/bin/setclasspath.sh 

解决方案:先下载docker pull tomcat:9.0.56,然后docker run -d tomcat:9.0.56

          镜像启动后你就得到了一个容器,通过ps-ef | grep tomcat查看,检查tomcat镜像是否启动容器成功:

4、显示本地已有的镜像:

                docker images
                docker images -q #查看所有镜像的id

         在列出信息中,可以看到几个字段信息:

  •         REPOSITORY:来自于哪个仓库,比如docker.io/tomcat
  •         TAG:镜像的标记,比如latest
  •         lMAGE ID:镜像的ID号(每一个镜像都有一个唯一的ID)
  •         CREATED:创建时间,表示你这个镜像官方是在什么时候创建的
5、删除镜像:删除本地镜像

              docker rmi 镜像id/名称号:版本号             #删除指定本地镜像
              docker rmi 'docker images -q'                 #删除所有本地镜像

6、查看当前运行的容器:

                 docker ps

  • CONTAINER ID:   容器的ID     
  • IMAGE :  容器是通过什么镜像运行的(是通过Tomcat镜像运行的)           
  • COMMAND: 运行的命令是catalina.sh run         
  • CREATED:  容器是什么时候启动的         
  • STATUS: 运行状态(运行了三小时)             
  • PORTS :  端口是8080(也就是容器里面的Tomcat端口是8080)            
  • NAMES:容器的名称,这个名字是docker引擎自动生成的
7、如何关闭容器:

                docker stop 容器ID/容器的名称

        注意:启动镜像用的是镜像名字或者镜像ID!!!镜像启动后你就得到了一个容器,但是关闭容器实用的容器名字或容器ID 

8、这两个命令都可以查看容器是否在运行:

                ps -ef | grep tomcat    docker ps

3.4、Docker的网络访问机制:

        tomcat镜像启动后你就得到了一个容器,通过ps-ef | grep tomcat查看进程,tomcat镜像启动容器成功:

        但是这个Tomcat不是直接运行在Linux上,而是运行在docker容器中,当然本身也在Linux上,Linux上有一个容器,容器里有一个Tomcat。

        理论上我们应该可以去访问这个Tomcat,我们如果是在虚拟机Linux里面运行着一个Tomcat,那我们可以在浏览器输入IP+端口可以去访问,tomcat的默认端口是8080,但是我们现在访问失败:

        如何去访问Docker中的tomcat呢,这就涉及到了Docker的网络机制 :

  • 容器内的网络服务和外部机器不能直接通信
  • 外部机器和宿主机可以直接通信
  • 宿主机和容器可以直接通信
  • 当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口上。外部机器访问宿主机的端口,从而间接访问容器的服务
  • 这种操作称为:端口映射

        从客户机上访问容器,需要有端口映射,docker容器默认采用桥接模式与宿主机通信,需要将宿主机的ip端口映射到容器的ip端口上;

        现在我们的浏览器中输入ip+端口 要去访问,我们不能直接访问docker里面的Tomcat,用户在访问的时候首先肯定是访问的Linux,这个Linux然后要转发到Tomcat里面去,我们需要Tomcat和当前Linux做一个端口映射,然后就可以转发进去了。

         docker容器里面的Tomcat的网络通讯与Linux本身采用一种网络桥接模式来通讯的,桥接模式通讯,我们就需要基于一个端口映射才可以让我们访问到docker容器里面的Tomcat。

具体操作如下:

1、我们先关闭tomcat容器: docker stop 215e46e97685

2、关闭容器后,重新启动容器:docker run -d -p 8080:8080 tomcat:9.0.56

         加上参数-p,意思是把你当前Linux上的某一个端口映射到容器里面的某一个端口,这样就可以实现端口映射:我们浏览器访问Linux里面的8080,然后Linux里的8080转发到容器里的8080,这样我们就可以实现访问了

3、我们再来查看一下运行着的容器 : docker ps 

         tomcat进程正在运行: ps -ef | grep tomcat

       总结:docker ps     ps -ef | grep tomcat  这两种方式都可以查看tomcat是否在运行。

4、我们现在再来访问试试:

 3.5、进入docker容器内部:

        前面我们已经把Tomcat镜像启动了,接下来我们进入Docker容器,看一下容器里面有一些什么东西:

        进入容器:  打开一个标准的输入流分配到一个虚拟的控制台,然后在这个控制台上执行bash就可以进入docker容器的命令行。简单点其实就是进入docker容器的命令行

                   docker exec -it 容器id  bash

  •          其中i表示交互式的、保持标准输入流打开;
  •          t表示虚拟控制台,分配到一个虚拟控制台;
  •          bash:linux的shell命令

          docker exec -it 8fca7219b9a8 bash:

        退出容器:exit

                                                ​​​​​​​ 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安装Realtek Audio Driver失败[Error Code:-0001]

安装Realtek Audio Driver失败[Error Code&#xff1a;-0001] 首先来看一下我们遇到的问题GPT4的推荐解决方法&#xff08;流水账&#xff09;笔者自己真实有效的解决办法 首先来看一下我们遇到的问题 描述&#xff1a;在笔记本更新完电脑之后&#xff0c;没有自带声音驱动。然…

【LeetCode】升级打怪之路 Day 11:栈的应用、单调栈

今日题目&#xff1a; Problem 1: 栈的应用 155. 最小栈 | LeetCode20. 有效的括号 | LeetCode150. 逆波兰表达式求值 | LeetCode Problem 2: 单调栈 496. 下一个更大元素 I739. 每日温度503. 下一个更大元素 II 目录 Problem 1&#xff1a;栈 - “先进后出”的应用LC 155. 最…

2024龙年特别篇 -- 魔法指针 之 指针变量

目录 ​编辑 字符指针变量 字符指针 字符数组 关于字符数组的试题 数组指针变量 数组指针 利用指针数组打印数组 打印二维数组 数组作为形参 当形参为指针时&#xff08;指针数组&#xff09; 函数指针变量 利用函数实现加法输出的多种方式 字符指针变量 字符指针 char …

[NSSCTF 2nd] web复现

1.php签到 <?phpfunction waf($filename){$black_list array("ph", "htaccess", "ini");$ext pathinfo($filename, PATHINFO_EXTENSION);foreach ($black_list as $value) {if (stristr($ext, $value)){return false;}}return true; }if(i…

CKA考生注意:这些Deployment要点能助你一臂之力!

往期精彩文章 : 提升CKA考试胜算&#xff1a;一文带你全面了解RBAC权限控制&#xff01;揭秘高效运维&#xff1a;如何用kubectl top命令实时监控K8s资源使用情况&#xff1f;CKA认证必备&#xff1a;掌握k8s网络策略的关键要点提高CKA认证成功率&#xff0c;CKA真题中的节点维…

蓝桥杯集训·每日一题2024 (前缀和)

笔记&#xff1a; 例题&#xff1a; #include<bits/stdc.h> using namespace std; const int N 5000010; char str[N]; int s[N]; int main(){int t;cin>>t;for(int a1;a<t;a){int n;cin>>n;scanf("%s",str1);for(int i1;i<n;i){s[i]s[i-1]…

重磅!交通领域顶级会议TRB会议将进行重大改革

美国交通研究委员会年会&#xff08;Transportation Research Board annual meeting,以下简称TRB会议&#xff09;是由美国交通研究委员会举办的交通领域的国际顶级会议。该会议每年举办一次&#xff0c;在华盛顿特区召开。TRB会议是交通研究领域知名度最高的学术会议之一&…

AI又进化了

B站&#xff1a;啥都会一点的研究生公众号&#xff1a;啥都会一点的研究生 一直想做但没做的板块&#xff0c;整理一段时间内AI领域的前沿动态&#xff08;符合大多粉丝研究领域/感兴趣方向&#xff09;&#xff0c;了解了解外面世界发展成啥样了&#xff0c;一起看看吧~ 谷歌…

跟 AI 学 StarRocks:简介

因为要支持公司的 BI 建设&#xff0c;团队引入了 StarRocks 数据库&#xff0c;此前我没有了解过此项技术&#xff0c;不过因为有架构师引入了此项技术栈&#xff0c;就顺便学习一下。 一、什么是 MPP 数据库&#xff1f; MPP 数据库指的是大规模并行处理&#xff08;Massiv…

Hololens 2应用开发系列(2)——MRTK基础知识及配置文件配置(上)

Hololens 2应用开发系列&#xff08;2&#xff09;——MRTK基础知识及配置文件配置 一、前言二、MRTK基础知识2.1 MRTK概述2.2 MRTK运行逻辑2.3 MRTK配置文件介绍2.4 MRTK服务 三、配置文件使用3.1 总配置文件3.2 相机配置3.3 其他配置 参考文献 一、前言 在前面的文章中&…

DDR5 新特性概述

主页&#xff1a; 元存储博客 文章目录 前言1. SDR 与 DDR2. DDR5 的新特点总结 前言 DDR5 带来更快的处理速度和更大的存储空间&#xff0c;为云计算、大数据等领域的发展提供了强有力的支持。 1. SDR 与 DDR single data rate&#xff0c; 1 个时钟周期做一次数据传输 do…

更改elementui的箭头图片以及位置

//更改箭头位置 .el-tree-node__content > .el-tree-node__expand-icon {position: absolute;right: 12px; }//更改箭头图片 .el-tree-node__expand-icon {transform: rotate(-90deg); } .el-tree-node__expand-icon.expanded {transform: rotate(0deg); } // 有子节点 且已…

使用QEMU搭建U-Boot+LinuxKernel+busybox+NFS嵌入式开发环境

目录 0.课程大纲1.为什么要使用QEMU学习嵌入式QEMU简介使用QEMU可以做哪些事情?当前嵌入式行业现状如何适应这种变化使用QEMU学习嵌入式有哪些好处?驱动开发技能为什么要学习Linux 2.搭建嵌入式开发基本环境2.1.安装u-boot-tools2.2.安装交叉编译工具什么是ABI和EABI 3.QEMU安…

DSI2协议之BTA行为理解

概念: DSI协议spec支持总线控制权在master和slave之间发生交换,即通过bus turn around来实现; BUS TURN AROUND: BTA 的实现是通过controller—>cdphy的turnrequest信号来实现; 关于控制器发出turnrequest给phy,phy通过lvds/trio线输出turnaround sequence如下图中…

C++基于多设计模式下的同步异步日志系统day3

C基于多设计模式下的同步&异步日志系统day3 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C基于多设计模式下的同步&异步日志系统 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&am…

C习题002:澡堂洗澡

问题 输入样例 在这里给出一组输入。例如&#xff1a; 2 5 1 3 3 2 3 3 输出样例 在这里给出相应的输出。例如&#xff1a; No代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 栈限制 8192 KB 代码 #include<stdio.h> int main() {int N,W,s,t,p;int arr_s[…

投影和定义投影的区别

Arcmap中关于投影的工具有四个&#xff0c;分别是定义投影、投影、投影栅格、批量投影。这四个工具既有相同之处也有不同之处&#xff0c;下面我将一一介绍。 ①定义投影&#xff1a;Arcmap中关于定义投影工具是这样描述的&#xff1a;“所有地理数据集均具有一个用于显示、测…

小白必看的Python函数讲解

定义函数 我们通过斐波那契数列来理解定义函数 >>> def fib(n): # 将斐波那契数列打印到 n ... """将斐波那契数列打印到 n""" ... a, b 0, 1 ... while a < n: ... print(a, end ) ... a, b b, …

【Linux安装软件命令及vim、gcc使用说明】

安装软件命令 Linux安装软件的命令首先要进入管理员权限 首先在终端输入sudo su切换到管理员界面 输入对应的密码&#xff0c;注意这里的密码不会显示出来&#xff0c;输完密码之后回车即可。当出现root就代表已经是管理员界面了。 如果相应退出管理员界面输入exit即可。 注…

出现这6点症状,不要拖延,不然植物神经紊乱会找到你!

植物神经紊乱&#xff0c;是一种由于自主神经系统失衡引起的疾病。自主神经系统主要负责调节人体内脏器官的功能&#xff0c;包括心脏、血管、消化系统等&#xff0c;一旦失衡将导致一系列不适症状。植物神经紊乱的主要原因包括长期的焦虑、压力、过度疲劳、情绪波动、生活节奏…