Docker 学习笔记-基本概念与安装

news/2024/12/21 21:17:52/文章来源:https://www.cnblogs.com/yangxuanzhi/p/18426010

Docker 学习笔记

基本概念

  • 镜像:Docker 的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。
  • DockerFile;镜像可以基于 DockerFile 构建,DockerFile 是一个描述文件,里面包含若干条命令,每条命令都会对基础文件系统创建新的层次结构,用户可以通过编写 DockerFile 创建新的镜像。
  • 容器:Docker 容器是由 Docker 镜像创建的运行实例。Docker 容器类似虚拟机,可以支持的操作包括启动,停止,删除等。每个容器间是相互隔离的,但隔离的效果比不上虚拟机。容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。
  • 容器隔离:在 Docker 容器中,每个容器之间的隔离使用 Linux 的 CGroups(Control Groups)和 Namespace 技术实现的。CGroups(控制组)提供了资源控制: CPU、内存、磁盘等资源的访问限制。Namespaces (命名空间)提供了系统资源的隔离:进程、网络、文件系统等。
  • Registry:如果你使用过 Git 和 GitHub 就很容易理解 Docker 的仓库概念。Docker 仓库相当于一个 GitHub 上的代码库。Docker 仓库是用来包含镜像的位置,Docker 提供一个注册服务器(Registry)来保存多个仓库,每个仓库又可以包含多个具备不同 tag 的镜像。Docker 运行中使用的默认仓库是 Docker Hub 公共仓库。仓库支持的操作类似 Git,创建了新的镜像后,我们可以 Push 提交到仓库,也可以从指定仓库 Pull 拉取镜像到本地。

Docker 安装

Docker 有两个版本,Community Edition(CE) 和 Enterprise Edition(EE)。即社区版和企业版本。

安装 docker-engine:见官网手册 https://docs.docker.com/engine/install/
更换 docker-ce 镜像源:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/

docker-engine安装流程:

卸载之前安装的docker及其工具包

yum remove	docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

添加docker-ce的安装源:

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

安装docker

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

验证安装是否成功

在安装成功后,Docker 的守护进程自动启动,不需要手动启动服务。此时,我们可以查看其版本信息,使用如下命令:

docker version

如果你是 自己搭建的 Docker 环境,可能会提示我们没有相应的权限连接到 Docker 守护进行绑定的 Unix 套接字。这是因为,默认情况下,该套接字归属于 root 用户,对于其它用户只能通过 sudo 来进行访问。

如果要让普通用户可以直接执行 Docker 命令而不必在每次执行时都输入 sudo 来获得权限,我们可以将要执行 Docker 命令的用户添加到用户组 Docker 中。该用户组会在安装后自动创建,我们只需执行添加用户到 Docker 用户组的操作:

sudo usermod -aG docker username

在添加成功后,我们还需要重新打开一个 shell 修改才能生效。这时可以尝试打开一个新的终端或者使用如下命令:

sudo su username

在安装之后,我们可以通过运行一个 hello-world 的镜像来验证 Docker CE 是否被正确的安装,使用如下命令:

docker run hello-world

该命令会下载一个名为 hello-world 的镜像并运行于一个容器中。当这个容器运行时,会输出一些信息并退出:

image

如上图中标注出的提示信息所示,提示我们安装正确。

docker hub 镜像配置

使用 Docker Hub 国内镜像:https://linux.do/t/topic/114516
注意:所有镜像加速器网址需要 https:// 开头,否则会报错!

配置方法:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://hub.uuuadc.top","https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu","https://docker.ckyl.me","https://docker.awsl9527.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面相快速入门教程7木型

7 木型 在本章中,我将介绍木型的基础知识,你将学会如何识别木型。首先,我们来快速参考一下木的特征:能量:向上、推动、活跃、早晨、春天、童年 特质:乐观、热情、活跃、人道主义、自信、愤怒、沮丧、冲动、反应灵敏、直接、敏锐、实际、逻辑性强、有条理、果断、有判断力…

1个月手把手教授搭建交易系统

1、资料领取 2、指导学习资料 3、完成观念的搭建 4、进行交易系统的初步搭建 5、对交易系统进行回测并且给予优化建议 6、完成交易系统的优化并且进行回测 学会了上述内容后,就能够自己搭建自己的交易系统了。 目前学费5万,线下教学,包教会。食宿由学员提供,只招收1人。

把token放到请求头中

1.前端(_axios + upload)2.后端(认证文件中)

操作系统错误点

一:操作系统概述 1. 用户界面是指用户接口 命令接口 程序接口操作环境2. 从用户观点看 操作系统就是用户与计算机硬件之间的接口 3. 从资源管理观点看 操作系统是计算机资源的管理者 4. 图形用户接口采用图形化操作界面 用于查看和操作应用程序或文档的是对话框 5. 用户程序请…

操作系统基础第三讲

操作系统基础第三讲 处理机调度与死锁考点一:处理机调度 1. 处理机调度的基本概念处理机调度的引入处理机调度的层次高级调度低级调度中级调度2. 处理机调度的方式抢占式方式非抢占式3,选择调度算法的若干准则面向用户的准则COU利用率:利用率=忙碌时间/总时间系统吞吐量系统…

操作系统基础第二讲

操作系统基础第二讲 进程管理考点一:进程的基本概念 1. 进程的顺序执行概念前驱图2. 程序并发执行的特征间断性失去封闭性不可再现性考点二: 进程的特征与状态 1. 特征的定义2. 进程的三种基本状态就绪态 已经分配好除CPU以外所有必要资源,可以进入处理机,排队等待执行态 正…

操作系统基础第一讲

操作系统基础第一讲考点一:操作系统的概念 1. 操作系统的定义2. 操作系统的作用2. 操作系统的特征并发性多线程,不能同时运行, 在同一时间间隔内交替发生,我走一段你走一段,谁先结束未知共享性虚拟性异步性考点二:操作系统的发展历程 1. 无操作系统的计算机系统人工操作方…

[43] (CSP 集训) CSP-S 模拟 10

B.清扫 考虑从叶子节点往上推 首先可以发现的几个性质子树内需要消除的数,要么通过子树根节点 “发送” 到上面(只经过子树内一个叶节点),要么通过自己的叶节点解决 对于子树内既不是根也不是叶节点的节点,节点上的值只能由这一支路的叶节点消除,所以如果他节点上的值和下…

DevNow: Search with Lunrjs

前言 假期真快,转眼国庆假期已经到了最后一天。这次国庆没有出去玩,在北京看了看房子,原先的房子快要到期了,找了个更加通透一点的房子,采光也很好。 闲暇时间准备优化下 DevNow 的搜索组件,经过上一版 搜索组件优化 - Command ⌘K 的优化,现在的搜索内容只能支持标题,…

Nuxt.js 应用中的 page:start 钩子详解

title: Nuxt.js 应用中的 page:start 钩子详解 date: 2024/10/8 updated: 2024/10/8 author: cmdragon excerpt: page:start 是一个关键的钩子,可以在页面加载时执行必要的逻辑,以提升用户体验。通过合理地使用这个钩子,可以创建流畅的页面导航体验,并提供用户反馈。 ca…

01-flask简单介绍

Flask是一个使用 Python 编写的轻量级 Web 应用框架,对比与Django框架呢,他的灵活度就很高了,可以自己一些设计代码框架。比较适合一些,分层比较少,逻辑不怎么复杂的web项目pip安装pip install flask -i https://pypi.tuna.tsinghua.edu.cn/simple 简单实例from flask im…