windows配置docker环境
windows安装docker可以基于WSL2或者Hyper-V的虚拟linux环境来安装
本文是基于WSL2来配置docker环境
windows docker安装包准备: https://docs.docker.com/desktop/install/windows-install/
windows下nvidia docker使用: https://docs.nvidia.com/cuda/wsl-user-guide/index.html
安装docker环境
- 更新 wsl
windows终端下执行
wsl.exe --install # 会安装ubuntu
wsl.exe --update # 更新windows子系统版本
-
安装Docker Desktop Installer.exe(需要把wsl2替换Hyper-V的选项给勾选)
-
打开Docker Desktop,进入设置界面,找到 Docker Engine 选项,修改json数据来换国内镜像源。
-
增加国内镜像源,参考如下
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "https://9iudsi8t.mirror.aliyuncs.com"],
- 保存并应用
获取镜像
从 Dockerhub 中获取所需要的镜像,下面以ubuntu18.04的镜像为例。
-
搜索栏中搜索ubuntu
-
选择ubuntu18.04
-
在winidows终端上获取镜像
docker pull ubuntu:18.04
启动容器
docker run --restart=always -p 1024:22 --user root -d -it --name ubuntu1804 --ipc=host -v /D/ubuntu_share/share:/root ubuntu:18.04 /bin/bash # 启动容器
参数说明:
- --restart : 容器随系统重启而重启
- -p : 端口号映射(我这里是本机1024端口映射容器的22端口,目的是可以方便ssh,当然可以自己随意设置端口或者不设置)
- --user : 设置启动容器的用户(我设置为root,root用户进入容器)
- -d : 后台运行
- -v : 设置磁盘映射(我这里是将 D:\ubuntu_share\share 映射到容器的 /root)
- --name : 给容器命名
最好不要在共享目录下安装程序
需要注意的是 本机1024端口不能被占用!!
windows查看端口占用命令(使用该命令如果有打印则说明端口号被占用了):
netstat -aon | findstr ":1024"
容器基本环境配置
docker ps # 查看运行中的容器
docker exec -it 79095f997a03 /bin/bash #进入容器 shell
sed -i 's/archive.ubuntu.com/mirrors.bfsu.edu.cn/g' /etc/apt/sources.list #换源 ,也可以将文件拷贝到映射的目录,直接在windows上修改
sed -i 's/security.ubuntu.com/mirrors.bfsu.edu.cn/g' /etc/apt/sources.list # 换源
apt update
apt-get install gcc g++ gdb openssh-server rsync vim python3 python3-pip #如果需要sudo 的话还得安装 sudoer
apt-get install cmake
passwd root #设置root用户密码
vim /etc/ssh/sshd_config #修改配置使能 root用户ssh登录
vim /etc/hosts.allow # 使能其他ip登录
/etc/init.d/ssh restart #重启服务
- 配置 ssh
vim /etc/ssh/sshd_config,修改配置 使能root用户ssh登录
PermitRootLogin yes
- 使能其他ip登录
vim /etc/hosts.allow
sshd: ALL
关于vscode调试
有两种方法:
- ssh远程调试
- 进入容器调试
ssh 远程调试
-
vscode 安装 Remote - SSH 插件
-
选择远程管理资源器
-
点击新建远程
-
输入 ssh的远程命令,之后选择平台,填写密码
容器调试
- vscode 安装 docker 和 Dev Containers 插件
-
选择 docker
-
先选中需要进入的容器,鼠标右击选择 附加 Visual Studio Code,之后就通过vscode进入到了容器中。