拉取和编译 Docker-CE

Tips: 下面操作均在 开篇:搞定 Go 开发环境 中创建的 Linux 虚拟机中进行

Docker-CE 的 cli 和 engine

Docker-CE 的仓库在 20.10 版本后会被归档不再维护,原来的 Docker-CE 会被拆分成 docker/climoby/moby 两个项目。docker/cli 项目就是 Docker-CE 的命令行工具部分,moby/moby 仓库就是原来的 Docker Engine 部分。

我们选择最新的 docker/climoby/moby 源码来拉取编译。

使用 Gitee 加速代码拉取

使用下列代码拉取 docker/cli 和 moby/moby 的 github 的仓库

git clone https://github.com/docker/cli.git
git clone https://github.com/moby/moby.git

如果处在比较好的网络环境下 clone github 的仓库十分方便,但在国内往往没有这样的网络环境,这时候我们可以考虑 Gitee 来加速 Github 仓库的拉取。下面展示使用 Gitee 加速 docker/docker-ce 仓库的拉取。加速拉取 docker/climoby/moby 的方法同理。

gitee 导入仓库

获取 gitee 地址
通过上图 Copy 出的地址来进行 Clone 就能很享受极速的 clone 体验。

编译环境准备

docker/cli 和 moby/moby 的默认编译工具都需要依赖 Docker,这样的话我们需要先安装 Docker

安装 Docker

按顺序执行下列命令,就能够给简单的安装好 docker

sudo apt-get remove docker docker-engine docker.io containerd runc

sudo apt-get update

sudo apt-get install -y  apt-transport-https ca-certificates  curl gnupg lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
"deb [arch=amd64 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


sudo apt-get update

sudo apt-get install -y docker-ce docker-ce-cli containerd.io

选择分支

这里选择 20.10 的分支

cd cli
git chekout 20.10
cd moby
git checkout 20.10

编译 cli

cli 编译很简单在 cli 代码目录下执行下面命令

sudo su
make -f docker.Makefile binary

等待命令执行完成,就能在 ./build/ 目录下找到新鲜出炉的 docker 二进制文件

docker-cli

然后执行使用该文件执行 ./docker version
编译出 Docker 测试

cli 编译完成

编译 engine

engine 编译也很简单,在 moby 代码目录下执行下面命令

sudo su
make binary

然后在 bundles/binary-daemon 目录下就能找到 dockerd

dockerd 编译成功

接着我们需要执行 systemctl stop dockersystemctl stop docker.socket 停止原来的 docker 服务。

然后在打包出来的目录下执行 ./dockerd 运行新鲜的 dockerd。
运行编译出来的 dockerd

dockerd 执行成功,正在监听客户端的输入。

然后运行 docker ps 命令看是否能够正常输出。
dockered 正常运行
docker engine 也编译完成。

Docker Hello World

接着使用新鲜的 docker cli 和 docker engine 运行一遍 Docker Hello World

维持上面的 dockerd 不变,进入到 cli/build 目录,分别执行下列命令

./docker pull alphine
./docker run alpine echo "hello from alpine"

成功运行

下面是 dockerd 和 docker-cli 同框的界面

编译出的 docker 和 dockerd 同框运行

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若即

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值