0%

docker安装与配置

因为工作上的原因,时不时会遇到这样的情况:需要某些旧版本的库,或是文档里写的库在自己的软件仓库上找不到(说的就是你,Ubuntu)。 这个时候开一个虚拟机显然是不太方便的选择;使用docker,我们可以做到将库环境隔离开来,需要工作的时候切换到docker里即可,而不需要切换系统或是开个虚拟机。

这篇文章记录下docker的安装和配置的过程。

安装

首先安装docker并启动其服务。

1
2
3
sudo pacman -S docker
sudo systemctl start docker.service
sudo systemctl enable docker.service

然后,使用sudo usermod -aG docker $USER并重启。再输入docker info,如果能够看到一长串机器配置信息,那么说明安装完成。

配置

docker下载非常慢,所以我们需要使用阿里云镜像,见https://blog.csdn.net/wohaqiyi/article/details/89335932进行配置。

比如我们希望有一个独立的Ubuntu环境,在这个环境里安装一些软件包。我们输入docker pull ubuntu拉取镜像,默认是最新版也就是20.04。

输入docker run -it --name=work ubuntu /bin/bash,我们就创建了一个叫做work的容器,并且进入了它。Ctrl-P Ctrl-Q可以退出而不停止运行。

然后开始安装需要的库:

1
2
3
apt-get update
apt-get install ca-certificates # 如果后续想要更换源,必须安装这个包用来认证
apt-get install ...

安装完成之后,我们可以将其commit,从而把容器的状态保存下来。如果我们在主机上有个工作目录,希望docker的容器也能使用,那么我们需要配置volume,启动时直接带上参数即可:

1
2
docker commit ... work
docker run -it -v ...:... --name=work work /bin/bash

使用

此时我们已经可以进行使用了。不过,为了让我们的生活更美好,我们可以选择用VSCode远程连接到容器进行编程。

这里需要注意的是,我们应该使用微软发行的VSCode而不是OSS版本(但我们可以通过软链接使得二者配置相同),否则会报一些错误(这个可以加命令行参数解决),而且连接到远程以后无法自动安装vscode的服务端。

然后按照官方指南直接attach到正在运行的docker,打开文件夹即可,正常使用即可。

在docker里使用代理

如果在宿主机上已有代理,但运行docker时希望docker内的容器也有代理环境,那么需要配置容器使用宿主机上的网络环境。

在构建docker镜像时,使用--network host --build-arg HTTP_PROXY=$HTTP_PROXY --build-arg HTTPS_PROXY=$HTTP_PROXY参数;运行docker容器时,使用--network host --env HTTP_PROXY=$HTTP_PROXY --env HTTPS_PROXY=$HTTPS_PROXY参数。