前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker:介绍与安装

Docker:介绍与安装

原创
作者头像
不惑
发布2023-11-09 08:35:04
1.3K0
发布2023-11-09 08:35:04
举报
文章被收录于专栏:Goboy

Docker官网与仓库地址

Docker三要素

镜像 (Image)

镜像是Docker的核心概念之一,它是不可变的、只读的,并包含了一套文件系统,里面包含了运行某个软件所需的所有内容,如代码、运行时、库、环境变量等。你可以将镜像想象成一个类Unix操作系统的快照。

容器 (Container)

容器是从镜像运行起来的一个实例,它可以被启动、停止、移动和删除。每一个容器都有自己的root文件系统、网络栈、进程空间等,因此它们之间是完全隔离的。

仓库 (Repository)

仓库是用来保存镜像的地方,你可以把它理解成一个代码仓库,只不过这里存放的是Docker镜像。Docker官方维护了一个公共的镜像仓库Docker Hub,任何人都可以在上面分享和下载镜像。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

最大的公开仓库是 Docker Hub(https://hub.docker.com/open), 存放了数量庞大的镜像供用户下载。国内的公开仓库包括腾讯云

深入理解

容器 (Containers)

  • 容器是 Docker 中的运行时实体,它是一个独立的、隔离的环境,其中包含了应用程序及其所有依赖项。
  • 容器是基于镜像创建的,它使用镜像作为启动应用程序的蓝图,因此容器包括了操作系统、应用程序和配置等信息。
  • 容器提供了隔离和轻量级的虚拟化,允许应用程序在相同的主机上运行,但彼此之间相互隔离,不会相互干扰。

镜像 (Images)

  • 镜像是容器的模板,它是只读的,包含了操作系统、应用程序和所有依赖项的文件系统快照。
  • 镜像是不可变的,一旦创建,它不能被更改。如果需要对应用程序或环境进行更改,需要创建一个新的镜像。
  • 镜像可以从 Dockerfile 文件构建,Dockerfile 是一种文本文件,定义了如何构建一个镜像,包括基础镜像、应用程序的安装、配置等。

仓库 (Repository)

  • 仓库是用于存储和共享 Docker 镜像的地方,可以理解为集中的镜像存储库。
  • 仓库通常托管在 Docker 镜像仓库服务上,最著名的是 Docker Hub。这些服务允许用户上传、下载和分享镜像。
  • 仓库包含一个或多个具体的镜像标签,每个标签对应不同的镜像版本。

举例来说,假设想运行一个基于 CentOS 操作系统的 Web 服务器应用程序。可以按照以下步骤进行操作:

  1. 创建一个 Dockerfile,其中定义了如何基于 CentOS 镜像构建您的应用程序镜像,包括安装 Web 服务器和配置。
  2. 使用 Docker 镜像构建命令 (docker build) 来生成应用程序镜像。
  3. 将应用程序镜像上传到 Docker 仓库,这可以是公共的 Docker Hub 仓库或私有的镜像仓库。
  4. 在目标主机上运行容器,通过指定上传的镜像名称和标签,Docker 将下载镜像并在容器中运行应用程序。

仓库允许共享镜像,同时可以保存多个版本的镜像,以便轻松地回滚到旧版本或进行更新。容器和镜像则提供了应用程序的隔离和可移植性,使得可以在不同的环境中运行相同的应用程序。这些概念共同构成了 Docker 生态系统的核心。

Docker的安装与卸载

准备

在安装 Docker 之前,先说一下配置,我这里是Centos7 Linux 内核:官方建议 3.10 以上 。

查看当前的内核版本

代码语言:javascript
复制
uname -r

3.10.0-1160.95.1.el7.x86_64

3.10.0-1160.95.1.el7.x86_64 是 CentOS 7 操作系统内核的版本号。具体来说,它表示了以下信息:

3.10.0 是 Linux 内核的主版本号。

1160.95.1 是 CentOS 7 内核的次版本号和修订号。

el7 表示这个内核是为 CentOS 7 版本构建的。

x86_64 表示内核是为 64 位 x86 架构的计算机编译的。

这个版本号用于标识操作系统内核的特定版本,它对于系统管理员和开发人员来说是很重要的,因为不同的内核版本可能会带来不同的特性、改进和修复。如果需要详细了解此内核版本的内容或有特定的问题,可以查看 CentOS 官方文档或内核发布说明来获取更多信息。


基于Centos7官网教程

安装docker服务

如果已经安装,则卸载旧的docker版本

代码语言:javascript
复制
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装仓库

代码语言:javascript
复制
sudo yum install -y yum-utils
代码语言:javascript
复制
#设置镜像仓库地址
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker引擎

安装最新版本的Docker Engine和容器,或转到下一步以安装特定版本:

代码语言:javascript
复制
sudo yum install docker-ce docker-ce-cli containerd.io

这个命令是安装 Docker CE 和它的两个重要组件 docker-ce-clicontainerd.io

CE 是 Community Edition 的缩写,意思是社区版。

docker-ce 是 Docker 的核心组件,包括了运行 Docker 所需的各种二进制文件和配置文件。

docker-ce-cli 是 Docker 的命令行工具,用于和 Docker 服务器进行交互,例如运行容器、管理镜像等。

containerd.io 是 Docker 使用的一个底层容器运行时,它提供了一些关键的功能,如容器生命周期管理、镜像传输和存储等。

总的来说,这三个组件共同构成了 Docker CE,并且缺一不可。如果想在 CentOS 上安装 Docker,那么就需要运行上述命令。

注意:在安装前请确保 CentOS 版本支持 Docker CE,同时也需要确保有 root 权限才能运行此命令。如果 CentOS 版本较老,可能需要先更新系统版本再进行安装。

启动docker服务

代码语言:javascript
复制
systemctl start docker

设置docker自启

代码语言:javascript
复制
systemctl enable docker

查看docker版本

代码语言:javascript
复制
docker version 

或者

代码语言:javascript
复制
docker -v

测试docker容器

代码语言:javascript
复制
docker run hello-world

查看docker容器

代码语言:javascript
复制
docker images

配置镜像加速配置

vim /etc/docker/daemon.json

添加镜像地址

代码语言:javascript
复制
{   
    "registry-mirrors": ["https://xxx.xxx.xxx.com"] 
}    

或者

代码语言:javascript
复制
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  # 用你自己的镜像源!!!!!!
  "registry-mirrors": ["https://xxxxxxxxxxxxxxxxxxxxxx.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

重新加载配置文件

代码语言:javascript
复制
systemctl daemon-reload

重启docker服务

代码语言:javascript
复制
systemctl restart docker

卸载docker

先停止docker

代码语言:javascript
复制
systemctl stop docker

卸载Docker Engine,CLI和Containerd软件包

代码语言:javascript
复制
sudo yum remove docker-ce docker-ce-cli containerd.io

主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷

代码语言:javascript
复制
sudo rm -rf /var/lib/docker 
sudo rm -rf /var/lib/containerd

必须手动删除所有已编辑的配置文件!!!

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker官网与仓库地址
  • Docker三要素
    • 镜像 (Image)
      • 容器 (Container)
        • 仓库 (Repository)
          • 深入理解
            • 容器 (Containers)
            • 镜像 (Images)
            • 仓库 (Repository)
        • Docker的安装与卸载
          • 准备
          • 基于Centos7官网教程
            • 安装docker服务
              • 启动docker服务
                • 设置docker自启
                  • 查看docker版本
                    • 测试docker容器
                      • 查看docker容器
                      • 配置镜像加速配置
                      • 卸载docker
                      相关产品与服务
                      容器服务
                      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档