Loading

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

docker 网络代理配置

sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=<代理地址>"
Environment="HTTPS_PROXY=<代理地址>"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
posted @ 2024-10-08 12:50  杨谖之  阅读(10)  评论(0编辑  收藏  举报