Linux 系统上安装 Docker 并进行配置

news/2025/2/6 0:29:01/

Docker 是一种开源的应用容器引擎,它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)而且更轻量级。

  1. 更新系统包
    首先,确保你的系统包是最新的。
    bash
    Copy
    sudo apt-get update
    sudo apt-get upgrade -y
  2. 安装必要的依赖
    安装一些必要的依赖包,以便能够使用 https 通过 apt 安装包。
    bash
    Copy
    sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
  3. 添加 Docker 的官方 GPG 密钥
    添加 Docker 的官方 GPG 密钥,以确保下载的包是可信的。
    bash
    Copy
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  4. 添加 Docker 的 APT 仓库
    添加 Docker 的 APT 仓库到你的系统。
    bash
    Copy
    echo “deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. 更新 APT 包索引
    更新 APT 包索引,以便能够找到新添加的 Docker 包。
    bash
    Copy
    sudo apt-get update
  6. 安装 Docker
    现在可以安装 Docker 了。
    bash
    Copy
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  7. 验证安装
    安装完成后,可以通过运行一个简单的 Docker 容器来验证安装是否成功。
    bash
    Copy
    sudo docker run hello-world
    如果安装成功,你应该会看到一条欢迎消息,说明 Docker 已经正确安装并运行。
  8. 将用户添加到 docker 组(可选)
    默认情况下,Docker 需要 sudo 权限才能运行。如果你希望避免每次都使用 sudo,可以将你的用户添加到 docker 组。
    bash
    Copy
    sudo usermod -aG docker $USER
    然后,你需要注销并重新登录,或者重启系统,以使更改生效。
  9. 启动和启用 Docker 服务
    确保 Docker 服务在系统启动时自动启动。
    bash
    Copy
    sudo systemctl enable docker
    sudo systemctl start docker
  10. 验证 Docker 服务状态
    你可以通过以下命令检查 Docker 服务的状态。
    bash
    Copy
    sudo systemctl status docker
    如果一切正常,你应该会看到 Docker 服务正在运行。
  11. 安装 Docker Compose(可选)
    如果你还需要使用 Docker Compose 来管理多容器应用,可以安装 Docker Compose。
    bash
    Copy
    sudo curl -L “https://github.com/docker/compose/releases/download/1.29.2/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
  12. 验证 Docker Compose 安装
    你可以通过以下命令验证 Docker Compose 是否安装成功。
    bash
    Copy
    docker-compose --version
    如果安装成功,你应该会看到 Docker Compose 的版本信息。
  13. 配置 Docker 镜像加速器(可选)
    在中国大陆地区,由于网络原因,拉取 Docker 镜像可能会比较慢。可以通过配置 Docker 镜像加速器来解决这个问题。常用的 Docker 镜像加速器有:
    网易:http://hub-mirror.c.163.com
    USTC:https://docker.mirrors.ustc.edu.cn
    等等
    编辑 Docker 的配置文件 /etc/docker/daemon.json,添加以下内容:
    {
    “registry-mirrors”: [“”]
    }
    plaintext
    Copy

其中,<your-mirror-url> 替换为你选择的镜像加速器地址。

14. 重启 Docker 服务

配置完成后,需要重启 Docker 服务以使更改生效。

sudo systemctl restart docker现在,你已经成功地在 Linux 系统上安装并配置了 Docker。

http://www.ppmy.cn/news/1569651.html

相关文章

C++输入输出(上)

cin和cout cin是C中提供的标准输入流对象,一般针对的是键盘,也就是从键盘上输入的字符流,使用 cin来进行数据的提取,cin一般是和 >> (流提取运算符) 配合使用的。 cin的功能和scanf是类似的 cout是C中提供的标准输出流对象,一般针对的是控制台的窗口,也就是将数据以字符…

面向npm的实时仪表板Dashly

之前介绍过读取 npm 日志的 GoAccess&#xff0c;这次介绍的是能动态跟踪和显示您 npm 中所有服务的轻量级实时仪表板 – Dashly 简介 什么是 Dashly &#xff1f; Dashly 是一个为 Nginx Proxy Manager 用户定制的实时仪表板。它通过自动与 NPM 数据库同步来简化您监控和组织…

mysql中in和exists的区别?

大家好&#xff0c;我是锋哥。今天分享关于【mysql中in和exists的区别&#xff1f;】面试题。希望对大家有帮助&#xff1b; mysql中in和exists的区别&#xff1f; 在 MySQL 中&#xff0c;IN 和 EXISTS 都是用于子查询的操作符&#xff0c;但它们在执行原理和适用场景上有所不…

使用numpy自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预

1. 引言 逻辑回归&#xff08;Logistic Regression&#xff09;是一种常见的分类算法&#xff0c;广泛应用于二分类问题。在本篇博客中&#xff0c;我们将使用numpy生成一个简单的自定义数据集&#xff0c;并使用TensorFlow框架构建和训练逻辑回归模型。训练完成后&#xff0c…

Elasticsearch Queries

Elasticsearch Compound Queries Elasticsearch 的 Compound Queries 是一种强大的工具&#xff0c;用于组合多个查询子句&#xff0c;以实现更复杂的搜索逻辑。这些查询子句可以是叶查询&#xff08;Leaf Queries&#xff09;或复合查询&#xff08;Compound Queries&#xf…

P3199 【[HNOI2009]最小圈】

疑似三倍经验 因为和机房一些大佬一起做的这道题&#xff0c;所以emmm他们貌似也写了题解&#xff0c;在做这道题的时候也参照了其他大佬写的一些题解&#xff0c;所以如果程序有雷同请见谅&#xff08;手动鞠躬&#xff09; 题目也是莫名其妙地给了一大串数学式&#xff0c;简…

记录一次-Rancher通过UI-Create Custom- RKE2的BUG

一、下游集群 当你的下游集群使用Mysql外部数据库时&#xff0c;会报错&#xff1a; **他会检查ETCD。 但因为用的是Mysql外部数据库&#xff0c;这个就太奇怪了&#xff0c;而且这个检测不过&#xff0c;集群是咩办法被管理的。 二、如果不选择etcd,就选择控制面。 在rke2-…

Qt网络相关

“ 所有生而孤独的人&#xff0c;葆有的天真 ” 为了⽀持跨平台, QT对⽹络编程的 API 也进⾏了重新封装。本章会上手一套基于QT的网络通信编写。 UDP Socket 在使用Qt进行网络编程前&#xff0c;需要在Qt项目中的.pro文件里添加对应的网络模块( network ). QT core gui net…