10分钟学会docker安装与使用

news2024/11/13 17:59:25

文章目录

  • 1、docker简介
  • 2、docker的基本组成
  • 3、docker的安装与配置
  • 4、docker的常用命令


1、docker简介

什么是容器?
它是一种虚拟化的方案,是操作系统级别的虚拟化,只能运行相同或相似内核的操作系统,依赖于Linux内核特性:Namespace和Cgroups (Control Group)。

Linux容器技术与虚拟机对比
在这里插入图片描述

docker的使用场景有哪些?
1、 使用docker容器开发、测试、部署服务
2、 创建隔离的运行环境
3、 搭建测试环境
4、 构建多用户的平台即服务(PasS)基础设施
5、 提供软件即服务(SaaS)应用程序
6、 高性能、超大规模的宿主机部署

docker容器的能力
文件系统隔离:每个容器都有自己的root文件系统
进程隔离:每个容器都运行在自己的进程环境中
网络隔离:容器间的虚拟网络接口和ip地址都是分开的
资源隔离与分组:使用Cgroups将CPU和内存之类的资源独立分配给每个Docker容器


2、docker的基本组成

Docker的主要概念有:Docker Client(客户端),Docker Daemon(守护进程),Docker Image(镜像),Docker Container(容器),Docker Registry(仓库)
在这里插入图片描述

dockerfile与仓库、镜像、容器及tar文件之间的关系
在这里插入图片描述


3、docker的安装与配置

在Ubuntu中安装docker
安装前检查环境:
1、 检查内核版本,用命令 uname -a
2、 检查Device Mapper,用命令 ls -l /sys/class/misc/device-mapper

法一:用Ubuntu维护的版本安装

sudo apt-get install docker.io
source /etc/bash_completion.d/docker.io

法二:用docker维护的版本安装

# 1、检查apt的https支持,查看/usr/lib/apt/methods/https文件是否存在,如果不存在,运行安装命令
apt-get update
apt-get install -y apt-transport-https
# 2、添加docker的apt仓库
echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list
# 3、添加仓库的key
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
# 4、安装
apt-get update
apt-get install -y lxc-docker

可以将这4个步骤写入一个sh脚本,用sh脚本一步到位安装

sudo apt-get install -y curl
curl -ssl https://get.docker.com/ubuntu/ | sudo sh

使用非root用户运行docker

1. sudo groupadd docker    # 创建一个名为docker的用户组
2. sudo gpasswd -a ${USER} docker  # 将当前用户添加到docker组
3. sudo service docker restart   #重启docker

4、docker的常用命令

1、查看镜像

docker images    #查看images镜像

2、启动容器

docker run IMAGE [COMMAND] [ARG…]
           -d 后台启动
           -i --interactive=ture | fasle 默认是false
           -t --tty=true | false 默认是false
# 比如:
docker run -d --name nginx_test -p 81:80 nginx    #运行容器(-d 后台运行, -p 外部81端口映射到容器80端口,  --name指定运行的名字)
docker run -d --name bmweb -v ~/example-docs:/usr/local/apache2/htdocs -p 80:80 httpd:latest   #-v 挂载目录,将宿主机目录挂载到容器内目标,双方修改同步

3、查看容器

docker ps   # 查看正在运行的容器
docker ps -a  # 查看全部的容器,包括停止的

4、查看容器详情

docker inspect 容器ID/name

5、重新启动停止的容器

docker start [-i] 容器ID/name

6、删除停止的容器

docker rm 容器ID/name  (并不能删除正在运行的容器)
docker rm -f 容器ID/name   (强制删除,能删除正在运行的容器)

7、删除镜像

docker rmi 镜像名字

8、进入正在运行的容器

docker exec -it 容器id前几位数字  /bin/bash     进入容器里面
exit  从容器里面退出来

9、把容器提交为镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
              -a,--author="" Author
              -m,--message="" Commit message
              -p,--pause=true Pause container during commit

docker commit -a "lishanlu" -m "Deeplearning model deploy environment." -p dnn_inference dnn_deploy/inference_env:v1.0

10、通过dockerfile构建镜像

docker build -t  dockerimage_name .               通过当前目录下的dockerfile构建镜像,主要最后一个点代表当前目录

11、把镜像打包成tar,方便拷贝到其他宿主机

docker save  镜像的名字  > 1.tar     将镜像保存为文件1.tar
docker save -o 1.tar 镜像的名字

12、tar包加载成docker镜像

docker load < 1.tar         从文件1.tar导入镜像
docker load -i 1.tar

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

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

相关文章

Qt实现圆形窗口

重新实现paintEvent()函数。 效果如下&#xff1a; 效果为蓝色区域&#xff0c;背景是vs接面&#xff0c;代码直接复制可用&#xff0c;留给有需要的人。 #ifndef CircleWidget_h__ #define CircleWidget_h__#include <QWidget>class CCircleWidget : public QWidget {Q…

MySQL安装以及配置

目录 1. MySQL安装包下载 2. 安装 3. 配置 4. 使用MySQL 5. 配置环境变量 1. MySQL安装包下载 1.1 迅雷下载 分享文件&#xff1a;MySQL安装包.zip 链接&#xff1a;https://pan.xunlei.com/s/VO3llUOt6rFFWl9TdrTrJI-cA1?pwdxere# 1.2 官网下载 MySQL :: Download MyS…

如何从戴尔笔记本电脑硬盘恢复数据

“如何从坏掉的戴尔笔记本电脑硬盘中恢复数据&#xff1f;我无法访问硬盘&#xff0c;但我确实需要从硬盘中检索数据。我有很多重要文件被困在那里。” 人们学习如何从戴尔笔记本电脑硬盘恢复数据的原因有很多&#xff0c;例如有意或无意删除、硬盘格式化、安全警告隔离受病毒…

springboot社区旧物回收系统-计算机毕业设计源码94813

目 录 摘要 1 绪论 1.1 研究背景 1.2研究意义 1.3论文结构与章节安排 2 社区旧物回收系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 社…

适合出行的蓝牙耳机推荐有吗?盘点4款开放式耳机排行版前十名

如果说出行想要佩戴耳机&#xff0c;但是又不知道选什么样的耳机&#xff0c;那其实你可以看看我的建议。因为我自己其实是个比较爱玩爱出去乱逛且选择恐惧症的耳机重度患者&#xff0c;所以就平时经常会跑去公园散步戴耳机听歌&#xff0c;或者是自己去野炊之类的&#xff1b;…

二叉树的遍历与根据遍历序列求二叉树

二叉树的遍历&#xff1a; 1、先序遍历&#xff1a;DLR 2、中序遍历: LDR 3、后序遍历: LRD (L表示遍历左子树&#xff0c;D表示遍历根结点&#xff0c;R表示遍历右子树&#xff09; 以下图举例说明&#xff1a; 以先序遍历为例&#xff1a; 1、因为先序遍历的规则为D…

直击Vue2/3watch的底层逻辑,字符串长度对侦听效率的影响

目录 直击Vue2/3watch的底层逻辑&#xff0c;字符串长度对侦听效率的影响 一、Vue 2的底层原理 二、Vue 3的底层原理 三、基础类型性能消耗 四、数据变化比较原理 1、Vue 2 中的引用类型比较 2、Vue 3 中的引用类型比较 3、字符串比较&#xff08;基础类型比较&#xf…

数据结构(学习)2024.8.6(顺序表)

今天开始学习数据结构的相关知识&#xff0c;大概分为了解数据结构、算法&#xff1b;学习线性表&#xff1a;顺序表、链表、栈、队列的相关知识和树&#xff1a;二叉树、遍历、创建&#xff0c;查询方法、排序方式等。 目录 一、数据结构 数据 逻辑结构 1.线性结构 2.树…

土压力计的基本工作原理:振弦式土压力计的奥秘

在土木工程、地质勘探及地下结构工程中&#xff0c;土压力计作为一种重要的监测设备&#xff0c;扮演着至关重要的角色。它能够实时、准确地测量土体内部的压力变化&#xff0c;为工程的安全性和稳定性提供可靠的数据支持。其中&#xff0c;振弦式土压力计以其高精度、稳定性好…

20-导线及NetLabel的添加

1.放置电气导线&#xff1a;ctrlw 2.放置网络标签

FCBFormer复现

表1 Kvasir-SEG复现结果&#xff1a;mDice&#xff1a;0.93846&#xff0c;mIoU&#xff1a;0.890299&#xff0c;mPrec.&#xff1a;0.945872&#xff0c;mRec.&#xff1a;0.940086 CVC-ClinicDB复现结果&#xff1a;mDice&#xff1a;0.946874&#xff0c;mIoU&#xff1a;0…

【Math.NET】使用Fit.Polynomial多项式拟合(直线、抛物线)的示例代码与示意图

介绍 Math.NET是一个开源项目&#xff1a;https://www.mathdotnet.com/&#xff0c;旨在构建和维护涵盖基础数学的工具箱&#xff0c;以满足 .NET开发人员的高级需求和日常需求。 关于Math.NET用法的参考博客&#xff1a; https://www.cnblogs.com/dino623/p/curve_fitting_a…

Canvas-Editor 基于canvas/svg的富文本编辑器

前言 哎&#xff0c;最近逛论坛&#xff0c;看的文章&#xff0c;真是水的一批&#xff0c;且不说水平咋样&#xff0c;有些结论、方法都是错的&#xff0c;不符合前端模块化、工程化规范&#xff0c;自己写写demo&#xff0c;觉得成功了&#xff0c;恨不得马上分享写博客&…

我的JavaScript异常监控策略:保护前端应用免受错误的困扰!

在上一篇文章如何及时发现网页的隐形错误中我们讲了&#xff0c;前端有哪些常见的异常&#xff0c;以及如今监控获取这些异常的方法&#xff0c;今天我们就来讲讲我是如何来监控我的JavaScript异常的。 背景 浏览器侧的异常分为两种类型 JavaScript 错误&#xff0c;一般来自…

为什么在网页编辑文字时键盘输入换行要停顿一下 网页才显示

事情的起因&#xff1a; 不知道从什么时候开始&#xff0c;在浏览器上编辑文字时&#xff0c;换行操作总是延迟响应&#xff0c;但点击空格网页响应速度正常。时间长了也习惯了&#xff0c;可能觉得本来就是这样吧&#xff0c;网页编辑可能不稳定&#xff0c;加上自己使用的是蓝…

结构体structure、共用体union

结构体 结构体类型——用来描述复杂数据的一种数据类型 构造类型&#xff08;用户自定义类型&#xff09; struct 结构体类型名 { 成员列表; }; struct关键字&#xff1a;表明是在构造一个结构体的类型 结构体名&#xff1a;用来描述结构体这个类型的一个名称 成员列表&…

JavaWeb系列十一: Web 开发会话技术Session

Web 开发会话技术Session Session有什么用session基本原理session原理示意图session可以做什么如何理解Session Session常用方法Session底层实现机制原理分析图应用实例session实现原理动画 Session生命周期Session生命周期说明Session生命周期实例 作业布置 Session有什么用 …

8.9 C++

1.思维导图 2. 搭建一个货币的场景&#xff0c;创建一个名为 RMB 的类&#xff0c;该类具有整型私有成员变量 yuan&#xff08;元&#xff09;、jiao&#xff08;角&#xff09;和 fen&#xff08;分&#xff09;&#xff0c;并且具有以下功能&#xff1a; (1)重载算术运算符…

书生大模型实战营第三期_L2-LMDeploy 量化部署进阶实践(81班1101作业)

大模型的痛点 大模型的计算量是非常大的 2. 显存的相应区域是非常大的 3.访存瓶颈 GPU的大部分时间都花在数据交换上面不断拉高batchsize&#xff0c;不断地提高计算的访存比是不是会有较好的效果呢&#xff1f;这是一个很好的想法&#xff0c;但是显存不够就会很尴尬为了能…

【youcans动手学模型】YOLO5 实战(中)训练目标检测模型

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans YOLO5 实战 &#xff08;上&#xff09;环境配置与测试 【youcans动手学模型】YOLO5 实战&#xff08;中&#xff09;使用自己的数据集训练目标检测模型 1. 准备训练数据集1.1 开源数据集1.2 YOLOv5 …