docker快速上手使用
文章目录
- 一、docker概述
- 1. 为什么需要docker
- 2. 什么是docker
- 3. docker和虚拟机的区别
- 4. docker三要素
- 二、docker安装
- 1. 添加app源
- 2. 安装docker社区版
- 3. 更换国内docker镜像源
- 三、docker基本使用方法
- 1. 获取镜像
- 2. 查看当前系统中的docker镜像
- 3. 运行docker容器
- 4. 查看当前存在的容器
- 5. 进入容器
- 6. 停止容器
- 7. 删除容器
- 8. 删除镜像
一、docker概述
1. 为什么需要docker
在项目开发阶段经常听到一句话:代码在我这里跑正常,为什么在你的机器上就出bug?
docker就是为了解决此问题诞生,将整个环境打包一起交付,这样保证开发环境、测试环境、正式环境都是一样的,避免因为环境不一致而产生不必要的问题。
2. 什么是docker
docker是基于go语言实现的开源项目,主要理念是:Build、ship and run any app,anywhere(在任何地方构建、发布、并运行任何项目)。
docker是解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
3. docker和虚拟机的区别
虚拟机是模拟一套完整的计算机硬件,在模拟的硬件上运行起来新的操作系统,启动慢,占用资源大。
Linux内核中提供了容器技术(Container)的支持,利用namespace将进程之间隔离,利用cgroup限制特定进程的资源使用。
基于Linux内核提供的容器技术,docker不需要模拟一套硬件,甚至都不需要新的操作系统内核,提供一套新的rootfs即可,带来的优点如下:
- 每个容器有自己的文件系统,容器之间相互隔离,容器之间的进程不会影响
- 启动快,开销小
4. docker三要素
docker整体架构图如下:
(1)安装docker启动之后,在本机就会有一个docker守护服务,称之为docker host
(2)用户通过docker client 执行命令去和docker host进行交互
(3)用户可以将常用的一些docker镜像从docker hub(docker镜像中心)拉取到本地
(4)用户想要运行某个拉取到本地的镜像时,docker host会创建一个加载了该docker镜像的全新docker容器
这段话不需要理解,在接下来的安装和使用过程中体验这段话所表述的意思即可。
二、docker安装
在Ubuntu20.04上安装方法如下。
1. 添加app源
更新索引:
sudo apt-get update
添加docker官方的GPG密钥:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
添加仓库app源(注意架构,我的是amd64):
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ $(lsb_release -cs) stable"
2. 安装docker社区版
更新索引:
sudo apt-get update
安装docker社区版:
sudo apt-get install docker-ce docker-ce-cli containerd.io
查看docker版本:
3. 更换国内docker镜像源
新建 /etc/docker/daemon.json 文件,添加以下内容,替换为腾讯云提供的docker源:
{"registry-mirrors":["https://mirror.ccs.tencentyun.com"]}
重启服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
三、docker基本使用方法
1. 获取镜像
docker官方提供了常用的docker镜像,包括ubuntu、centos、fedora等基本的操作系统,nginx、mysql、redis、python等基本的运行环境。
docker hub官方地址:https://hub.docker.com/。
比如拉取18.04版本的ubuntu镜像:
sudo docker pull ubuntu18.04
2. 查看当前系统中的docker镜像
查看已经pull下来的docker镜像:
sudo docker images
该docker镜像仅占用63.1MB,开销非常小:
3. 运行docker容器
docker会启动一个容器,该容器会将docker镜像加载进来。
-d
:表示容器在后台运行-i
:表示交互式操作-t
:表示终端--name
:指定容器名称
docker run [参数] <要启动的docker镜像名称> [进入容器后要执行的程序]
(1)启动容器并直接进入
sudo docker run -it ubuntu /bin/bash
(2)在后台启动一个容器,并设置容器名字为ubuntu-test
sudo docker run -it -d --name ubuntu-test ubuntu:18.04 /bin/bash
4. 查看当前存在的容器
sudo docker ps -a
5. 进入容器
进入后台正在运行的容器:
sudo docker exec -it <容器id> <进入容器后执行的程序>
同时,这里我验证了容器中和容器外查看内核版本,用的是同一个内核。
6. 停止容器
sudo docker stop <容器id>
7. 删除容器
sudo docker rm <容器id>
8. 删除镜像
sudo docker rmi <镜像名称>
相关文章:

docker快速上手使用
文章目录一、docker概述1. 为什么需要docker2. 什么是docker3. docker和虚拟机的区别4. docker三要素二、docker安装1. 添加app源2. 安装docker社区版3. 更换国内docker镜像源三、docker基本使用方法1. 获取镜像2. 查看当前系统中的docker镜像3. 运行docker容器4. 查看当前存在…...

<c++> 类的构造函数与类的析构函数
文章目录类的构造函数什么是构造函数声明和定义构造函数如何使用构造函数默认构造函数类的析构函数什么是析构函数声明和定义析构函数小练习银行账户执行效果类的构造函数 什么是构造函数 Q:什么是类的构造函数 A:构造函数是类的一种特殊成员函数,不需…...
华为OD机试真题Java实现【玩牌高手】真题+解题思路+代码(20222023)
玩牌高手 给定一个长度为n的整型数组,表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌, 请计算所有轮结束后其可以获得的最高总分数。 选择规则如下: 1、在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分数,为其新的总分数。 2、选手也可不选择本轮…...
Hive Sql整体优化思路
如果遇到sql性能问题,可以先查看4040页面的sql执行信息。一个sql解析为多个stage,一个stage分为多个task。对问题Sql的某一个stage,基本的分析思路如下:所有的task都慢,检查下是否有笛卡尔积(关联字段重复值、关联字段…...

【华为OD机试模拟题】用 C++ 实现 - 数组的中心位置(2023.Q1)
最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...
取指定数值的地址 (int 转 void *)
int a 0x12345678 是一个地址void *p (void *)a; 提示下马错误;Error: cast to pointer from integer of different size [-Werrorint-to-pointer-cast]This error occurs when there is an attempt to convert an integer to a pointer of a different size. Thi…...

C#的多线程、线程池和Task
线程 被定义为程序的执行路径。每个线程都定义了一个独特的控制流。如果您的应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。 线程是轻量级进程。一个使用线程的常见实例是现代操作系统中并行编程的…...

Day20【元宇宙的实践构想06】—— 元宇宙与Web3.0
💃🏼 本人简介:男 👶🏼 年龄:18 🤞 作者:那就叫我亮亮叭 📕 专栏:元宇宙 部分资料参考文献: 成生辉教授的《元宇宙:概念、技术及生态》和百度相关…...

极限熵和冗余度
本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:information-theory】,需要的朋友们自取。或者公众号【AIShareLab】回复 信息论 也可获取。 信息冗余度(多余度、剩余…...
女生学习大数据专业未来前景怎么样
学习大数据与性别没有什么太大关系,各有优势。就目前的发展前景来说,大数据还是非常不错的,至于好不好就业就要看你个人学习的怎么样,以及学历是否过关了~ 据《新职业——大数据工程技术人员就业景气现状分析报告》显示ÿ…...

主题模型实践
目录 一.TF-IDF 二.LSI 三.相似度 四.主题和主题分布 五. LDA计算的相似度 六.LDA过程 七.主题 八.主题和主题分布 九.数据处理流程 十.常用正则表达式 十一.代码 一.TF-IDF 二.LSI 三.相似度 四.主题和主题分布 五. LDA计算的相似度 六.LDA过程 七.主题 八.主题和主…...

按字典序排列的最小的等价字符串[拆解并查集]
并查集前言一、按字典序排列的最小的等价字符串二、并查集总结参考文献前言 并查集有什么用?并查集是什么?搞懂这两个问题,相关的并查集问题就变得非常easy! 一、按字典序排列的最小的等价字符串 二、并查集 有一种方法&#x…...

操作系统——6.系统调用
目录 1.概述 2.系统调用的定义和作用 2.1 定义 2.2 功能 2.3 分类 3.系统调用和库函数的区别 4.系统调用背后的过程 5.小结 1.概述 这篇文章我们主要来介绍一下操作系统中的系统调用,下面来看一下具体的框架图: 2.系统调用的定义和作用 2.1 定…...

JavaScript DOM操作
目录 获取元素: 修改元素属性: 添加、删除、替换元素: 修改样式: DOM(文档对象模型)是一种用于操作 HTML 和 XML 文档的 API。JavaScript 通过 DOM API 可以访问和操作页面中的元素、属性和样式等。 获…...
【数据结构】顺序表
文章目录前言初始化顺序表打印顺序表检查容量判空顺序表数据个数尾部插入尾部删除头部插入头部删除在pos位置插入数据删除pos位置的数据查找数据修改数据销毁顺序表整体代码写在最后前言 顺序表作为数据结构中的小小弟,还是很好应付的。说到数据结构,顺序…...
【人工智能 AI 】RPA 架构师需要具备的技能有哪些?RPA Solution Architect
RPA 架构师需要具备的技能有哪些?使用markdown格式,不少于3000字,细化到3级目录。 文章目录 一、RPA架构师需要具备的技能1. 对RPA的理解2. 对RPA技术的熟练掌握2.1 RPA系统的架构模式2.2 RPA软件的操作模式2.3 RPA程序的编写方式3. 对RPA应用的知识4. 对软件开发的基本知识…...

【模拟集成电路】鉴频鉴相器设计(Phase Frequency Detector,PFD)
鉴频鉴相器设计(Phase Frequency Detector,PFD)前言一、 PFD的工作原理二、 PFD电路设计(1)PFD电路图(2)D触发器电路图(3)与非门(NAND)电路图&…...

【Linux】进程间通信介绍 | 管道
🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉进程间通信…...

这次说说腾讯的一场 35K—55K 的 Android 高工面试
一、面试的由来 事情是这样的,因为跟公司发展一些想法的不同,早在十月份的时候就有了跳槽的想法,但是碍于老大的面子就一直就没有跟人事说出口,打算着等到年后金三银四在试试跳槽。 但是发生一件事终于让我忍不住了,…...

Jenkins第一讲
目录 一、Jenkins 1.1 敏捷开发与持续集成 1.1.1 敏捷开发 1.1.2 持续集成 1.2 持续集成工具 1.2.1 jenkins和hudson 1.2.2 技术组合 1.2.3 部署方式对比 1.3 安装Jenkins 1.3.1 下载Jenkins的war包 1.3.2 开启Jenkins 1.4 Jenkins全局安全配置 1.5 使用Jenkins部…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...