主页 >> 程序猿的东西 >> 用docker在windows做一个linux执行器

用docker在windows做一个linux执行器

因为docker的ubuntu镜像是没有主进程的,所以通常执行完任务就会退出。要想用同一个容器继续执行其他任务也比较麻烦。或者想把容器中的文件拷贝出来都不那么容易。用下面这个方法可以实现一个接近完美的执行器,而且可以配置各种网络模式,总之比WSL的体验好多了。

基本操作

首先启动一个ubuntu容器,并把启动命令设置为bash。可以把自己的工作目录挂载进容器,免得跨容器拷贝文件,注意要用绝对路径,其中的区别请查询docker文档。

docker run -it --name=runner -v C:\Users\laotie\workspace:/data ubuntu:latest bash

然后就可以做各种事情了,比如 apt update,完事输入exit退出即可。这个时候容器是Exited状态。

下次需要使用的时候执行以下命令:

docker start -ai runner

如此即可恢复执行器的终端。

其他可选操作

# 更新软件源为国内163源
sed -i 's/\/\w\+.ubuntu.com/\/mirrors.163.com/gi' /etc/apt/sources.list
# 最新版的ubuntu的源配置变更了位置,需要用下面的方法
sed -i 's/\/\w\+.ubuntu.com/\/mirrors.163.com/gi' /etc/apt/sources.list.d/ubuntu.sources
# 网络相关的工具
apt install -y curl iputils-ping dnsutils openssh-client git

集成到Terminal应用

先写一个bat脚本,用于启动容器并打开一个bash终端。内容如下,保存在C:\Users\laotie\ubuntu-runner.bat

docker start runner
docker exec -it runner bash

在左侧的Profiles的位置,点击最下面的Add a new profile,新增一个配置项。

输入喜欢的名称(Name),命令行(Command line)输入:C:\Users\laotie\ubuntu-runner.bat,如下图所示。

在图标(Icon)的位置输入Ubuntu官网的favicon,https://assets.ubuntu.com/v1/49a1a858-favicon-32x32.png

发表评论

滚动至顶部