Linux----Docker详解

server/2024/11/15 3:55:02/

葡萄美酒夜光杯,欲饮琵琶马上催。 醉卧沙场君莫笑,古来征战几人回? 

目录

docker%E7%AE%80%E4%BB%8B-toc" style="margin-left:0px;">一,docker简介

docker%E6%9E%B6%E6%9E%84-toc" style="margin-left:0px;">二,docker架构

docker%E5%AE%89%E8%A3%85-toc" style="margin-left:0px;">三,docker安装

docker%E5%B8%B8%E8%A7%81%E6%93%8D%E4%BD%9C-toc" style="margin-left:0px;">四,docker常见操作

五,容器操作

六,数据卷

docker%E7%AE%80%E4%BB%8B">一,docker简介

虚拟机和docker有什么区别呢?

虚拟机是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在windows系统里面运行Centos系统,这样就可以运行任意的Centos应用了。

Docker仅仅是封装函数库,并没有模拟完整的操作系统,请看下图:

注意:

docker是一个系统进程,虚拟机是在操作系统中的操作系统

docker体积小,启动速度快,性能好;虚拟机体积大,启动速度慢,性能一般

docker有什么优点呢?

docker允许开发中将应用,依赖,函数库,配置一起打包,形成可移植镜像

docker应用运行在容器中,使用沙箱机制,相互隔离

docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行

docker可以将程序及其依赖,运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统

docker运行时利用沙箱机制形成隔离容器,各个应用互不干扰

启动,移除都可以通过一行命令完成,方便快捷

docker%E6%9E%B6%E6%9E%84">二,docker架构

首先介绍下相关概念:

镜像docker将应用程序及其所需的依赖,函数库,环境,配置等文件打包在一起,称为镜像,这个文件包是只读的。

容器:镜像中的应用程序运行后形成的进程就是容器,只是docker会给容器进程做隔离,对外不可见,容器可以被创建,启动,停止,删除,暂停等。一个镜像可以启动多次,形成多个容器进程。

仓库:集中存放镜像文件的地方。

docker架构:

docker是一个cs架构的程序,由两部分组成:

服务端docker守护进程,负责处理docker指令,管理镜像,容器等

客户端:通过命令或RestApi向docker服务端发送指令,可以在本地或远程向服务端发送指令

docker%E5%AE%89%E8%A3%85">三,docker安装

首先查看Linux内核版本:

(base) zhengguiliang 17:40:23 ~/yz
$ uname -r
4.18.0-553.el8_10.x86_64

Linux内核版本在3.10以上才可以安装

移除旧版本:

(base) zhengguiliang 17:41:11 ~/yz
$ yum remove docker docker-common docker-selinux docker-engine
$ yum remove docker-ce

安装依赖软件包:


(base) zhengguiliang 17:43:36 ~/yz
$ yum install -y yum-utils device-mapper-persistent-data lvm2

安装docker-ce

(base) zhengguiliang 17:43:36 ~/yz
$ yum -y install docker-ce

启动docker,并设置为开机自动启动

#启动docker服务
systemctl start docker
#设置开机自动启动
systemctl enable docker

docker%E5%B8%B8%E8%A7%81%E6%93%8D%E4%BD%9C">四,docker常见操作

拉取自己需要的镜像:

docker pull nginx

 查看拉取到的镜像:

docker images

删除本地镜像:

docker rmi nginx:katest

导出镜像:

docker save -o nginx.tar nginx:latest

加载镜像:

docker load -i nginx.tar

五,容器操作

容器保护三个状态:

运行:进程正常运行

暂停:进程暂停,CPU不再运行,并不释放内存

停止:进程终止,回收进程占用的内存,CPU等资源

docker run:创建并运行一个容器,处于运行状态

docker pause:让一个运行的容器暂停
docker unpause:让一个容器从暂停状态恢复运行
docker stop:停止一个运行的容器
docker start:让一个停止的容器再次运行
docker rm:删除一个容器

 查看正在运行的容器:

# 查看全部的容器,包括没有运行
docker ps -a 
# 简单操作
docker run 镜像的标识|镜像名称[tag]
# 常用的参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[tag]
#-d:代表后台运行容器
#-p:宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
#-i:保持docker和容器内的交互,启动容器时,运行命令结束,容器依然存活
#-t:为容器的标准输入拟一个tty
#--name 容器名称:指定容器的名称
#--rm 容器启动后就销毁

进入容器:

docker exec -it 容器id bash

dockerexec:进入容器内部,执行一个命令
-it:给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
qf:要进入的容器的名称
bash:进入容器后执行的命令,bash是一个linux终端交互命令

 查看容器日志:

docker logs -f 容器id

删除容器:

#停止指定的容器
docker stop 容器id/容器名称
#停止全部容器
docker stop $(docker ps -qa)
#删除指定容器
docker rm 镜像id/容器名称
#删除全部容器
docker rm $(docker ps -qa)

启动容器:

docker start 容器id/容器名称

六,数据卷

数据卷是一个虚拟目录,指向宿主机文件系统中的某个目录。

一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。

docker volume [COMMAND]

docker volume create:创建数据卷
docker volumels:查看所有数据卷
docker volumeinspect:查看数据卷详细信息,包括关联的宿主机目录位置
docker volumerm:删除指定数据卷
docker volume prune:删除所有未使用的数据卷

 


http://www.ppmy.cn/server/96283.html

相关文章

数据结构第九讲:二叉树

数据结构第九讲:二叉树 1.实现链式结构二叉树1.1二叉树的节点结构1.2创建二叉树节点1.3前中后序遍历1.3.1前序遍历1.3.2中序遍历1.3.3后序遍历1.3.4总结 1.4二叉树结点的个数1.4.1错误示范1.4.2实现方法 1.5二叉树叶子结点的个数1.6二叉树第k层结点的个数1.7二叉树的…

网络安全 - 应急响应检查表

前言 本项目旨在为应急响应提供全方位辅助,以便快速解决问题。结合自身经验和网络资料,形成检查清单,期待大家提供更多技巧,共同完善本项目。愿大家在应急之路一帆风顺。 图片皆来源于网络,如有侵权请联系删除。 一…

前端面试题- 如何让vue页面重新渲染

哈喽小伙伴们,大家好!我是爱学英语的程序员,上周五结束了我的第一段实习,接下来将会为大家继续更新面试题系列,不断积累,不断进步! 在Vue中,可以使用以下几种方式让页面重新渲染: 改变数据状态: Vue中的响应式系统会自动监听数据的变化&am…

【多线程-从零开始-肆】线程安全、加锁和死锁

进程状态 进程状态: 就绪:正在 CPU 上执行,或者随时可以去 CPU 上执行阻塞:暂时不能参与 CPU 的执行 Java 的线程,对应状态做了更详细的区分,不仅仅是就绪和阻塞了 六种状态: NEW 当前 Thread…

MySQL数据的增删改查 where 条件查询 基础知识 【3】推荐

操作数据是数据库很重要的一部分,今天整理了下关于MySQL数据库数据的增删改查,包括基础查询、where条件查询、排序、分页、聚合、分组、having以及多表查询,多表查询的直接查询、内连接、外连接以及子查询。方便自己以后查看,也欢…

C++——多态经典案例(一)组装电脑

案例:小明打算买两台组装电脑,假设电脑零部件包括CPU、GPU和内存组成。 一台电脑使用intel的CPU、GPU和内存条 一台电脑使用Huawei的CPU、GPU和Intel的内存条 分析:使用多态进行实现 将CPU、GPU和内存条定义为抽象类,内部分别定义…

【docker快捷部署系列一】docker快速入门,安装docker,解决运行Docker Quickstart Terminal出错

1、docker快速入门 视频链接 知识点概述 docker是轻量级虚拟机image是镜像 相当于虚拟机快照container是容器,相当于运行起来的虚拟机程序Dockerfile 是创建docker镜像的自动化脚本docker-compose 是一个定义和运行多个容器命令的工具,包括运行Docker…

VsCode无法远程调试

一、问题描述 按照《VsCode gdb gdbserver远程调试C程序》中介绍的方法,配置好VsCode后,按下F5快捷键,或点击“Start Debugging”按钮,没有反应,无法启动调试: 二、解决方法 针对该问题,我尝…