Docker Desktop 设置 代理 以及一些其它配置

4,846 阅读4分钟

一、Docker Desktop 的设置代理

注意:都是http, 第二个写https会出错

image.png

二、Docker Desktop 的配置

2.1 wsl 数据存储路径

第一次成功启动 docker desktop 之后,你可以在 C:\Users\用户名\AppData\Local\Docker\wsl\data 这个目录下,找到ext4 文件,它就是 wsl 使用的虚拟机文件,我们使用docker 的所有操作和下载的所有文件,都会在这个目录中执行。
因此如果默认系统分了系统盘和数据盘,或者是我们有其他空间更大的硬盘可选,那么有必要将 这个ext4盘文件 进行迁移。
在这里插入图片描述
更新:20221008 发现一个工具可以帮我们快速迁移,比之前使用 wsl 指令,还需要先导出,再导入的操作稍微简单一些

参考 - 如何修改WSL的安装路径

工具下载地址

迁移方式:先确认需要迁移的 wsl 名称:

./LxRunOffline.exe list

在这里插入图片描述
然后迁移:(迁移需要一定时间)

./LxRunOffline.exe move -n docker-desktop-data -d 'D:\wsl'

== 以下是旧的迁移方式 ==

迁移步骤:首先退出 docker desktop ,并检查docker desktop 对应的虚拟机的状态,应该都要是关闭状态

wsl --list -v

在这里插入图片描述

wsl --export docker-desktop-data "C:\Users\用户名\AppData\Local\Docker\wsl\data\docker-desktop-data.tar"

将目前的wsl 磁盘文件导出到指定压缩文件中

wsl --unregister docker-desktop-data

卸载docker-desktop-data服务

wsl --import docker-desktop-data "D:\docker\wsl\data" "D:\docker\wsl\docker-desktop-data.tar" --version 2

导入刚才导出的 wsl 磁盘文件
最后,重启 docker desktop,正常来说:
① docker 可以正常启动
② 原目录的 ext4 文件没有了(Distro 下面也有一个 ext4 文件,这个没关系)

2.2 配置代理

代理基本是开发过程中必备的,但是如果你使用的镜像服务是国内的,那么提交、下载镜像的时候又不应该走代理,所以需要在代理上额外配置一下:
在这里插入图片描述

如:使用阿里云镜像的代理配置
localhost,127.0.0.1,*.aliyuncs.com

2.3 测试拉取并运行镜像

这里我们测试一个可直接通过 ssh 连接的镜像:jdeathe/centos-ssh
Git地址

docker pull jdeathe/centos-ssh

docker run -d --env "SSH_PASSWORD_AUTHENTICATION=true" --env "SSH_USER=centos" --env "SSH_USER_PASSWORD=test123" --name ssh.1 -p 30022:22 jdeathe/centos-ssh

123

除了启动命令的学习,这个仓库提供的Dockefile 非常标准化,是直接基于centos 原生镜像 在其基础上改的,从Dockerfile中也能看到非常多标准化的操作,想要学习 centos 原生镜像初始化细节的可以从这个项目的Dockerfile中了解更多细节。

三、搭建自己的开发服务器

这里提供一个自己平时开发用的镜像,里面安装了一些开发语言的基本环境
其中,语言下载的依赖(比如 maven、gopath)都统一放在 /opt/path 目录下,安装的组件都放在 /opt/modules 下。

项目git地址(smiecj/docker-centos)
镜像下载和启动方式:

# 构建一个包含 golang、python、java 和 npm 的开发镜像
REPO=mzsmieli nohup make build_dev_full

# 运行镜像 (也可以直接运行 将从 docker hub 下载镜像)
docker run -it -d -p 2222:22 mzsmieli/centos:base8_dev_full_1.0

12345

启动成功后,就可以进行自由的开发了。如果需要在容器内部编写代码,这里再推荐 vscode + ssh + 本地免密登录配置的开发模式。修改之后,在容器内部代码变更可以立刻生效,也可以在 vscode 中直接通过 命令行 执行操作在这里插入图片描述

如果需要启动其他服务,开启更多端口映射,修改 Dockerfile 和 docker run 启动命令即可。

扩展文章: vscode 使用技巧

四、后言:Docker 在现在开发的重要性

现在不仅是信息爆炸的时代,更是技术爆炸的时代。底层技术虽然没有太大的变化,但是上层应用技术基本是2-3年一更新。
伴随而来的,不仅仅是我们自己知识库的更新,还有日益膨胀的操作系统。是的,有的时候我们需要在电脑上跑后台前端服务,有的时候也要学习其他基础组件,可能还要顺应潮流学一点机器学习。各种技术都需要安装一些依赖。不管是 mac 还是 windows,一旦你换一台电脑,迁移这些环境都是很费成本的。

因此 现在项目都推崇 协同开发的模式,所有代码、文档 都在云端统一管理。但是对个人来说,这种模式也慢慢变得必要起来。

所以我推荐 Docker 的原因就这么简单,只是镜像管理和环境管理的方便性,对于程序员来说就足够爱上它了。而且它也远不止这些内容,它的原理,以及 k8s 的实现,也是值得我们去学习的。共勉。