首页 > 其他分享 >Docker 学习笔记-基本概念与安装

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

时间:2024-10-08 12:43:43浏览次数:6  
标签:容器 笔记 基本概念 ce 镜像 docker 安装 Docker

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

标签:容器,笔记,基本概念,ce,镜像,docker,安装,Docker
From: https://www.cnblogs.com/yangxuanzhi/p/18426010

相关文章

  • 笔记——数论
    蓝月の笔记——数论篇Part0约定令\(\mathcal{P}\)为质数的集合所有时间复杂度均指上界Part1质数,\(\gcd\)质数就是只有\(1\)和本身两个因数的数,公因数就是同时使多个数的因数的数,\(\gcd\)就是最大的公因数质数求法:欧拉筛在埃氏筛的基础上优化,让每个合数都只被一个......
  • 《机器学习初步》笔记 第一章
    第一章绪论1.1引言机器学习的经典定义:利用经验(数据)改善系统自身的性能经典的机器学习过程:机器学习最重要的理论模型:PAC(概览近似正确)1.2基本术语数据集:一组记录的集合学习/训练:通过执行某个学习算法,得到模型,学的的模型对应数据的某种潜在规律示例:不包含结果(标记label)......
  • 机器学习第一章学习笔记
    第一章绪论1.1引言  在计算机系统中,“经验”通常以"数据"形式存在。书中采用"模型"泛指从数据中学得的结果。1.2基本术语  记录的集合称为一个"数据集",每条记录是关于一个事件或对象的描述,称为一个"示例"(instance)或"样本"(samp1e)。(注意:有时候整个数据集也被......
  • HTB-TwoMillion 靶机笔记
    TwoMillion靶机笔记概述HTB上的一台liunx靶机,难度定为了简单级别,它包括了对js接口的信息收集,js反混淆,未授权,越权,命令注入等漏洞。一、nmap扫描1)端口扫描nmap-sT--min-rate10000-p--oports10.10.11.221Nmapscanreportfor10.10.11.221Hostisup(0.37s......
  • 2024.7.26 集训笔记
    单调栈给定一个长度为\(n\)的数列\(a\),对每个数字求出其右/左边第一个值大于等于它的数字的位置。考虑从左到右扫整个序列,维护一个栈,里面存放可能成为答案的数字,当遍历到一个新的数\(a_i\)的时候,可以发现栈中\(\leqa_i\)的数就再也不可能成为答案了,那就把它们弹掉,此时......
  • 珂朵莉树(ODT)学习笔记
    对一个序列进行推平和查询等操作,我们难免会有过这样的想法:只维护连续段即可。但是这只是比较优的暴力,精心构造的数据可以轻松卡掉。事实上,在随机数据下,这样的算法的时间复杂度是\(\mathcal{O}(n\logn)\),这就是颜色段均摊理论,证明不会。根据这个理论产生了珂朵莉树,它可以维护区......
  • 高性能计算学习笔记(1)
    一、程序优化CPU程序优化1.1体系结构:CPU流水线技术、高速缓指令集、CPU超标量设计1.2并行技术:MPI、OpenMP、SIMD、汇编1.3算法:算法优化GPU程序优化1.1GPU的体系结构(计算核心、高带宽、多级存储)1.2GPU并行框架:CUDA、OpenCL、OpenACC1.3并行设计的算法程序优化核心......
  • prometheus学习笔记之PromQL
    prometheus学习笔记之PromQL一、PromQL语句简介官方文档:https://prometheus.io/docs/prometheus/latest/querying/basics/Prometheus提供⼀个函数式的表达式语⾔PromQL(PrometheusQueryLanguage),可以使⽤户实时地查找和聚合时间序列数据,表达式计算结果可以在图表中展示,也可......
  • Kubernetes 和 docker 之间的版本对应关系
       Kubernetes和Docker是两个紧密相关的技术,Docker被广泛用于构建和运行容器,而Kubernetes用于编排这些容器。在早期,Kubernetes依赖Docker作为其容器运行时(ContainerRuntime),因此了解Kubernetes与Docker版本之间的兼容性是非常重要的。   然而,从Kube......
  • ABB_800xA学习笔记314:做一个实际的练习1
    国庆节懒了几天尽去玩了,没有学习。我把前段时间在新浪博客记录的内容转发在这里,那里把访问量清零后还没有恢复。原文地址:ABB_800xA学习笔记314:做一个实际的练习1_来自金沙江的小鱼_新浪博客(sina.com.cn)很久没有学习ABB800xA了,现场有一套800xA的设备,如果出了问题还是得区处理......