标签 Docker 下的文章

了解在 Ubuntu 上安装 Docker 的两种官方方法。一种很简单,但可能会给你一个稍旧的版本。另一种方法稍显复杂,但能提供最新的稳定版本。

使用 Docker 意味着开启一个新的计算领域,但如果你刚刚开始使用 Docker,安装可能看起来是一项艰巨的任务。

在 Ubuntu 上安装 Docker 有两种推荐的方法:

  • 从 Ubuntu 的仓库安装 Docker:简单的单行命令,但提供旧版本
  • 使用 Docker 的官方仓库:工作量稍多,但提供了最新的稳定版本

我将在本教程中讨论它们。

方法 1:使用 Ubuntu 的仓库安装 Docker

如果你不在意旧版本,并且不想设置和管理仓库,那么这是最适合你的方法。

从更新仓库索引开始:

sudo apt update

现在,你可以使用以下命令在 Ubuntu 中安装 Docker 以及 Docker Compose

sudo apt install docker.io docker-compose
? Docker 包被命名为 docker.io,因为在 Docker 出现之前就已经存在一个名为 docker(用于 Dockerlet 应用)的过渡包。因此,Docker 包必须被命名为其他名称。

安装完成后,你可以使用以下命令检查安装的版本:

docker -v

如你所见,它给了我 Docker 24.0.5。

方法 2:在 Ubuntu 中安装最新稳定版本的 Docker

如果你想要 Docker 的最新稳定版本,那么你可以从其官方仓库安装 Docker。

步骤 1:删除任何现有的 Docker 包

但在跳到安装部分之前,有必要删除所有以前安装的 Docker。

卸载以前的 Docker,请使用以下命令。

sudo apt remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc

步骤 2:安装依赖项

第一步是安装一些必要的软件包,这些软件包将用于在本教程后面安装 Docker:

sudo apt install ca-certificates curl gnupg lsb-release

你可能已经安装了部分或全部这些软件包,但确认安装没有什么坏处。上面的命令不会伤害你。

步骤 3:添加 Docker 仓库的 GPG 密钥并将其添加到 sources.list

现在,通过 apt 包管理器创建一个具有特殊权限的目录,用于存储加密密钥以进行包验证:

sudo install -m 0755 -d /etc/apt/keyrings

接下来,如下所示 使用 curl 命令 下载并导入 Docker 的 GPG 密钥环:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

下载 GPG 密钥后,使用 chmod 命令更改文件权限,以便系统上的每个用户都可以读取 GPG 密钥:

sudo chmod a+r /etc/apt/keyrings/docker.gpg

最后,将 Docker 仓库添加到 sources.list.d 文件中:

echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

就是这样!

步骤 4:安装 Docker 和 Docker Compose

现在,要使你对系统所做的更改生效,请更新系统仓库:

sudo apt update

使用以下命令获取最新版本的 Docker 以及其他 Docker 组件和依赖项:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
? 虽然 docker.io 包安装了大部分必需的 Docker 组件,但你需要在此处单独进行安装。

要检查已安装的版本,请使用以下命令:

docker -v

测试安装的另一个方法是在 Docker 中使用 “Hello World” 镜像。

让我告诉你如何做。

使用 hello-world 镜像来验证 Docker 安装

运行 “Hello World” 程序是我们启动任何编程之旅时都遵循的标准做法,Docker 也是如此。

Docker 为你提供了一个 “Hello World” 镜像,你可以使用它来测试安装。

要安装并运行 “Hello World” 镜像,只需使用以下命令:

sudo docker run hello-world

某些用户在执行上述命令时可能会收到错误消息“无法连接到 Docker 守护进程”:

在这种情况下,重新启动系统并再次尝试安装 Docker Hello World 镜像,它将正常工作。

? 额外提示:在 Ubuntu 中使用 Docker 而无需 sudo

如果你注意到了,我使用 sudo 来拉取 Docker 镜像,这并不是使用 Docker 最方便的方式。

如果你尝试在不使用 sudo 的情况下使用 Docker,则会出现错误:

好吧,在本节中,我将向你展示如何在没有 sudo 的情况下使用 Docker。

? 要执行所示步骤,必须具有超级用户权限!

第一步是使用以下命令 创建一个名为 docker 的新组

sudo groupadd docker

完成后,使用以下命令将用户添加到 docker 组:

sudo usermod -aG docker <用户名>
? 确保你只添加具有超级用户权限的用户。

现在,注销并重新登录以使更改生效。但如果你使用的是虚拟机,那么必须重新启动。

就是这样!从现在开始,你可以使用 docker 命令而不需要 sudo,就像我运行 Docker Hello World 镜像一样:

就这样吧。

这是安装 Docker 后要做的事情

如果你刚刚开始,请参阅每个用户都必须了解的 基本 Docker 命令列表

21 个基本 Docker 命令

我希望你觉得会有帮助。

(题图:DA/759e483b-0be8-409e-bc58-ed19d99cbdd4)


via: https://itsfoss.com/install-docker-ubuntu/

作者:Sagar Sharma 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

了解如何在 Arch Linux 上安装 Docker,并使用 Docker Compose 和制表符补全为运行容器做好准备。

在 Arch Linux 上安装 Docker 很简单。它可以在 Extra 仓库中找到,你可以简单地 执行 pacman 魔法

sudo pacman -S docker

但要在 Arch Linux 上正确运行 Docker,还需要执行更多步骤。

让 Arch Docker 做好准备

这一切都归结为以下步骤:

  • 从 Arch 仓库安装 Docker
  • 启动 Docker 守护进程并在每次启动时自动运行
  • 将用户添加到 docker 组以运行 docker 命令而无需 sudo

让我们看看详细步骤。

步骤 1:安装 Docker 包

打开终端并使用以下命令:

sudo pacman -S docker

输入密码并在询问时按 Y

这可能需要一些时间,具体取决于你使用的镜像。

? 如果你看到找不到包或 404 错误,那么你的同步数据库可能是旧的。使用以下命令更新系统(它将下载大量软件包并需要时间): sudo pacman -Syu

步骤 2:启动 docker 守护进程

Docker 已安装但未运行。你应该在第一次运行 Docker 命令之前启动 Docker 守护进程:

sudo systemctl start docker.service

我还建议启用 Docker 服务,以便 Docker 守护进程在系统启动时自动启动。

sudo systemctl enable docker.service

这样,你就可以开始运行 docker 命令了。你不再需要手动启动 Docker 服务。

步骤 3:将用户添加到 docker 组

Docker 已安装并且 Docker 服务正在运行。你几乎已准备好运行 docker 命令。

但是,默认情况下,你需要将 sudodocker 命令一起使用。这很烦人。

为了避免在每个 docker 命令中使用 sudo,你可以将自己(或任何其他用户)添加到 docker 组,如下所示:

sudo usermod -aG docker $USER

你必须注销(或关闭终端)并重新登录才能使上述更改生效。如果你不想这样做,请使用以下命令:

newgrp docker

现在已经准备好了。我们来测试一下。

步骤 4:验证 docker 安装

Docker 本身提供了一个很小的 Docker 镜像来测试 Docker 安装。运行它并查看是否一切正常:

docker run hello-world

你应该看到类似这样的输出,表明 Docker 成功运行:

恭喜! 你已经在 Arch Linux 上成功安装了 Docker。

可选:安装 Docker Compose

Docker Compose 已经成为 Docker 不可或缺的一部分。它允许你管理多个容器应用。

较早的经典 Compose 由 docker-compose Python 软件包提供。Docker 还将其移植到 Go 中,并通过 docker compose 提供,但该软件包附带 Docker Desktop

在这个阶段,我建议使用经典的 docker-compose 插件并使用以下命令安装它:

sudo pacman -S docker-compose

故障排除技巧

以下是你可能遇到的一些常见问题以及可能的解决方案:

制表符补全不适用于 docker 子命令

如果你想对 docker 命令选项使用制表符补全(例如将 im 补全到 images 等),请安装 bash-completion 包:

sudo pacman -S bash-completion

关闭终端并启动一个新终端。你现在应该能够通过 docker 命令使用制表符补全功能。

无法连接到 Docker 守护进程错误

如果你看到以下错误:

docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

那是因为 Docker 守护进程没有运行。参考步骤 2,启动 Docker 服务,确保其正在运行并启用它,以便 Docker 守护进程在每次启动时自动运行。

sudo systemctl start docker.service
sudo systemctl enable docker.service

尝试连接到 Docker 守护程序套接字时权限被拒绝

如果你看到此错误:

ddocker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.

这是因为你需要使用 sudo 运行 docker 命令,或者将用户添加到 docker 组以在不使用 sudo 的情况下运行 docker 命令。

我希望这篇简短的文章可以帮助你在 Arch Linux 上运行 Docker。

(题图:MJ/9951f8bf-d2e5-4335-bd86-ebf89cba654d)


via: https://itsfoss.com/install-docker-arch-linux/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Docker 公司称过去三年收入增长了 30 倍

Docker 公司 CEO 表示,该公司的年度经常性收入在过去 3 年中增长了 30 倍。他将收入的增长归功于“与 7 万多个商业客户之间的信任”,尽管另一个因素是连续的提价和减少免费和低成本的 Docker 计划的范围。这些条款的突然和重大改变,有时让用户感到被胁迫,一些人已经寻找其他选择,但仍然有超过 1300 万的开发者使用免费计划。Docker 称,其发展是由现有用户的遥测数据指导的,他们“以匿名的方式,每秒钟收集了超过 23000 个事件”。

消息来源:Devclass
老王点评:虽然社区有不少意见,但是 Docker 公司现在看起来是一家财务上比较健康的公司了。

苹果公司选择旁观 ChatGPT

微软向开发 ChatGPT 的 OpenAI 投资百亿美元,Google 进入了恐慌模式将应对 ChatGPT 的挑战作为其最优先事项,亚马逊 AWS 也开始提供各种基于云端的大语言模型。然而世界上市值最高的企业至今未对此有任何表态。苹果主要卖的是硬件,ChatGPT 之类的 AI 对其产品而言是锦上添花,但加入 AI 竞赛需要大量投资,其中云计算是关键,而云计算并不是苹果擅长的领域。

消息来源:Solidot
老王点评:虽然 Siri 很老旧,但是苹果这个时候或许一动不如一静。

二手路由器往往装载着企业的秘密

研究人员购买了 18 台不同型号的二手路由器,其中有 9 台保留原样,完全可以使用,而只有 5 台被适当地清除过配置。这 9 台未受保护的设备都包含了该组织的 VPN 凭证、另一个安全网络通信服务的凭证,或散列的根管理员密码。此外,还包括了路由器与路由器之间的认证密钥,以及关于路由器如何连接到之前使用的特定应用程序的信息。

消息来源:Ars Technica
老王点评:这些二手设备真是信息泄露的重要来源。

Docker Hub 将删除所有没有付钱的开源组织的镜像

Docker 要求以“组织”名义开设账号的用户升级到付费的团队方案,每年 420 美元,否则其账号将被删除,其名下的 Docker 镜像也将被删除。Docker Hub 被很多开源项目用于发布镜像,许多项目依赖于这些免费的镜像,如果这些镜像被删除,意味这些免费用户的系统会崩溃。Docker 的 CTO 甚至说他们“将关闭那些不交钱的账户,并且不允许其他人接管这个名字”。此举引发了巨大争议,很多人开始将其镜像迁移出 Docker 转到其它平台或自行托管。

消息来源:Alex Ellis
老王点评:Docker 公司越来越背离开源,这不但解决不了其商业发展问题,而且是自绝其路。

AI 棋手刺激人类棋手进步

根据一项研究,在 DeepMind 的 AlphaGo 击败最强大的人类棋手之后,人类棋手通过与 AI 棋手对弈而取得了显著进步。研究人员使用了一种被称为“决策质量指数”(DQI)的指标,该指标用于评估一步棋的质量,如果没有尝试与之前的动作相结合,即认为一个动作是“新颖的”。分析发现,1950 年至 2015 年间,围棋水平的改善相对较小,年度 DQI 中值在 -0.2 至 0.2 之间波动。而在 2016 年后,DQI 跃升,2018 年至 2021 年间的中值超过 0.7。

消息来源:《科学美国人》
老王点评:这样看起来,在 AI 这条鲶鱼的威胁下,人类可能会被激发新潜力。

勒索软件攻击已进入一个令人发指的新阶段

今年 2 月,BlackCat 勒索团伙攻击了美国宾州的一个医生诊所,这次攻击涉及一个与放射肿瘤学治疗有关的病人照片系统。在被拒绝支付赎金后,勒索团伙威胁发布了三张癌症患者接受放疗的截图和七份包括患者信息的文件。还有一个例子是,另外一个勒索团伙公布了从一所学校窃取的样本数据,泄露的截图包括手写笔记的扫描件,其中描述了对侵犯的指控,以及参与该事件的男女学生的名字。

消息来源:Ars Technica
老王点评:作恶的人,没有底线并不值得惊讶。

Rust 叫好不叫座

据 2022 年 Stack Overflow 开发者调查,只有 9% 的开发者在使用 Rust,但它已经在“最受喜爱”的语言中占据了七年的位置。在今年的调查中,几乎有 87% 的开发者表示他们喜欢 Rust,这比第二大受欢迎的语言 Elixir 高出约 10 个百分点。

消息来源:Stack Overflow
老王点评:看起来发展很好,而且已经进入了 Linux 内核,但是离撼动 C 和 C++ 的位置还需要很长的时间。

Docker Hub 至少有 1600 个公开镜像带有恶意行为

Docker Hub 是一个基于云的容器库,允许人们自由搜索和下载 Docker 镜像。除了由 Docker 库项目审查的镜像之外,在该服务上还有数十万个状态不明的镜像。Sysdig 使用其自动扫描器仔细检查了 25 万个未经验证的镜像,并确定其中 1652 个镜像是恶意的。这些恶意行为包括加密矿工、隐藏的认证凭证等。

消息来源:Bleeping Computer
老王点评:未经验证的 Docker Hub 上的镜像是非常危险的。

新加坡将每棵大树都连上物联网

新加坡大约有 700 万棵树,他们通过一个巨大的物联网监测计划对 600 万棵大树进行监控。新加坡国家公园管理局用一个应用程序来管理它们,除了用 LiDAR 采集数据,对每棵植物进行地理定位之外,还通过卫星遥感进行多光谱分析,以确定叶绿素水平,确保树木仍然茁壮成长,以及在树木上安装倾斜传感器确保树木没有被移动或倾倒。

消息来源:The Register
老王点评:这是不是可以叫做“树联网”。

Colima 是 macOS 和 Linux 上的 Docker Desktop 替代品,它现在由 DDEV 支持。

DDEV 是一个开源工具,可以在几分钟内轻松启动和运行本地 PHP 开发环境。由于其每个项目的环境配置可以扩展、版本控制和共享,所以它很强大和灵活。简而言之,DDEV 旨在允许开发团队在其工作流程中使用容器,而无需复杂的定制配置。

DDEV 用灵活、现代、基于容器的解决方案取代了更传统的 AMP 栈解决方案(WAMP、MAMP、XAMPP 等)。因为它使用容器,DDEV 允许每个项目使用任何一组应用、Web 服务器版本、数据库服务器、搜索索引服务器和其他类型的软件。

2022 年 3 月,DDEV 团队 宣布支持 Colima,这是 macOS 和 Linux 上的开源 Docker Desktop 替代品。Colima 是开源的,据所有报告显示,它比其替代方案有所 性能提升,所以使用 Colima 似乎是一个没有问题的选择。

迁移到 Colima

首先,Colima 几乎是 Docker Desktop 的替代品。我说几乎是因为在将它用于现有的 DDEV 项目时需要重新配置。具体来说,必须重新导入数据库。解决方法是先导出数据库,然后启动 Colima,然后再导入。很简单。

Colima 要求安装 Docker 或 Podman 命令。在 Linux 上,它还需要 Lima。

Docker 默认随 Docker Desktop for macOS 一起安装,但它也可以作为独立命令使用。如果你想要 100% 纯 Colima,你可以卸载 Docker Desktop for macOS,并独立安装和配置 Docker 客户端。完整的安装说明可以在 DDEV 文档站点上找到

容器技术栈图片

容器技术栈图片 图片来源:(Mike Anello,CC BY-SA 4.0)

如果你选择继续使用 Colima 和 Docker Desktop,那么在命令行执行 docker 命令时,你必须首先指定要使用的容器。下一节将对此进行更多介绍。

在 macOS 上安装 Colima

我目前有一些本地项目使用 Docker,还有一些使用 Colima。当我了解了基础知识,在它们之间切换就不难了。

  1. 使用 Homebrew brew install colima 安装 Colima
  2. ddev poweroff(为了安全起见)
  3. 接下来,使用 colima start --cpu 4 --memory 4 启动 Colima,--cpu--memory 选项只需执行一次。第一次之后,只需要 colima start
  4. 如果你像我一样是 DDEV 用户,那么你可以使用常用的 ddev 命令(ddev configddev start 等)启动一个全新的 Drupal 9 站点。建议启用 DDEV 的 mutagen 功能以最大化性能

在 Colima 和 Docker Desktop 之间切换

如果你还没有准备好使用 Colima,你可以同时安装 Colima 和 Docker Desktop。

  1. 首先关闭 ddev:ddev poweroff
  2. 然后停止Colima:colima stop
  3. 现在运行 docker context use default 告诉 Docker 客户端你要使用哪个容器。默认名称是 Docker Desktop for Mac。当 colima start 运行时,它会自动将 Docker 切换到 colima 上下文
  4. 要继续使用默认(Docker Desktop)上下文,请使用 ddev start 命令。

从技术上讲,启动和停止 Colima 不是必需的,但是在两个上下文之间切换时的 ddev poweroff 命令是必要的。

Colima 停止时,最新版本的 Colima 会将 Docker 上下文恢复为 default,因此不再需要 docker context use default 命令。无论如何,我仍然使用 docker context show 来验证 default(Docker Desktop for Mac)或 colima 上下文是否正在使用。基本上,术语 context 指的是 Docker 客户端将命令发送到哪个容器提供者。

尝试 Colima

总的来说,我喜欢我目前所看到的。我没有遇到任何问题,而且基于 Colima 的网站看起来更快些(尤其是在启用 DDEV 的 Mutagen 功能时)。我肯定会预见自己在未来几周内将项目网站迁移到 Colima。

本文最初发布在 DrupalEasy 博客 并经许可重新发布。


via: https://opensource.com/article/22/9/docker-desktop-colima

作者:Michael Anello 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出