最近准备入手一套 NAS ,于是乎决定先研究一下大名鼎鼎的 Docker 容器
安装 Docker 到 WSL 中
在第一步安装的时候就被坑了一把(安装了这么多软件没想到啊…)
因为我选择的 Linux 版本是 Ubuntu 18.04 ,于是乎我就直接在 Ubuntu 中 apt 尝试安装,结果发现服务根本起不起来。而且报错的原因还是什么 系统内核需要升级,吓得我赶紧 apt remove…
后面我才发现只需要在官网下载 Windows 版本,然后在里面直接选择开启 WSL 即可,搞来搞去结果搞得更复杂了
首先说明一个大坑,仅支持 window10 专业版系统,或是已安装 docker for window10,否则无法启动 daemon 守护进程,就算一步一步到最后没有任何报错,也无法启动 docker。我一直侥幸以为能够找到万能网友的解决方法,或者是自己能够尝试得到解决方案,后来发现除了上面条件满足才能实现。
下面整理一下安装步骤
- 在Docker 官网下载 Windows 版本
- 安装过程中一直点击下一步即可
- 安装完成需要注销或者重启电脑
- 重启完成后会看到右下角就有一个可爱的小海豚,右键 setting > General 将所有选项全部勾选
- Resources > WSL INTEGRATION 中看下有没有你安装的 Linux 版本,如果没有请执行 6 ;如果已经有了你所安装的版本,直接点击勾选再重启即可
- 如果没有出现你的 Linux ,打开 Powershell ,执行 wsl –set-default Ubuntu-18.04 2 ,这里的 Ubuntu-18.04 是你安装的 Linux 版本,可以使用 wsl -l -v 查看
这是进入你的 wsl 试试 docker ps 如果没有报错就证明可以使用了
在右下角右击图标时也可以切换 windows docker 和 Linux docker
使用阿里云的镜像容器服务
先注册一个阿里云的服务
注册完成后在 实例列表 > 默认实例 > 访问凭证 中先设置一个登录密码,然后在下面可以看到一串命令,在此之前还需要在你的 WSL 中执行一条命令
1 | sudo ln -s /mnt/c/Program\ Files/Docker/Docker/resources/bin/docker-credential-desktop.exe /usr/bin/docker-credential-desktop.exe |
这句话是让 docker-credential-desktop.exe 可以在 Linux 中执行
然后再执行阿里云中的命令
1 | sudo docker login --username=******** registry.cn-hangzhou.aliyuncs.com |
这一串 * 号表示的是你的登录名,自行修改即可
输入你自己创建的密码即可提示登录成功
阿里云中创建你的私人仓库
依次点开 容器镜像服务 > 实例列表 > 镜像仓库 点击创建镜像仓库,依次填写内容即可
随后点击右边的管理按钮即可查看各种使用命令
登录阿里云 Docker Registry
$ sudo docker login –username=mrxun**** registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在访问凭证页面修改凭证密码。
从 Registry 中拉取镜像
1 | $ sudo docker pull registry.cn-hangzhou.aliyuncs.com/xxxx/xxxx:[镜像版本号] |
将镜像推送到 Registry
1 | $ sudo docker login --username=**** registry.cn-hangzhou.aliyuncs.com |
请根据实际镜像信息替换示例中的 [ImageId] 和 [镜像版本号] 参数。
选择合适的镜像仓库地址
从 ECS 推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
如果您使用的机器位于 VPC 网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为 Registry 的域名登录。
示例
使用 “docker tag” 命令重命名镜像,并将它通过专有网络地址推送至 Registry。
1 | $ sudo docker images |
使用 “docker push” 命令将该镜像推送至远程。
1 | $ sudo docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816 |