09_wsl2+Ubuntu+docker(个人AI大模型开发测试运行基础环境2)
一、简介
为什么要用 docker?
目前大部分LLM 推理框架都支持 docker 的方式安装,好处是可以快速的搭建好环境,不需要安装组件的依赖,一键安装与删除。
没有安装 wsl2 的 参考 08_Win+wsl2+Ubuntu(个人大模型开发测试运行基础环境)
二、配置apt源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
#备份(可选)
vim /etc/apt/sources.list
#编辑apt源文件
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
:x #保存并退出
然后执行 apt update
# 更新源数据
三、配置Docker 源
cat /etc/docker/daemon.json
# 查看 docker源文件
vim /etc/docker/daemon.json
#编辑docker源文件,并添加 镜像地址,解决下载镜像慢的问题
{
"registry-mirrors": ["https://docker.xuanyuan.me"]
}
{
registry-mirrors: [https://docker.nju.edu.cn/]
}
service docker restart
# 重启docker 服务
四、安装 Docker
sudo su
# 切换到 root 用户 (可选)
sudo apt-get remove docker docker-engine docker.io containerd runc
#卸载旧版本Docker (可选)
sudo apt-get install ca-certificates curl gnupg lsb-release
#安装依赖
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
#添加docker密钥
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#添加阿里云docker软件源
apt-get install docker-ce docker-ce-cli containerd.io
#安装docker
如果是用非root用户安装的可以执行下面命令 (可选)sudo usermod -aG docker $USER
sudo reboot
# 重启
五、防火墙切换为iptables-legacy(非常重要)
网络上的教程最多坑的就是这里,没有多少教程说到这个点的,都是安装完docker 后就 systemctl start docekr
… … ,
你会发现启动不了docker 不是报这个问题就是报那个问题, 巨坑。
update-alternatives --config iptables
#防火墙切换为iptables
如下,选择 iptables-legacy
检查是否切换成功
(base) root@DESKTOP:~# iptables --version
iptables v1.8.10 (legacy)
六、启动docker
#启动docker
(base) root@DESKTOP:~# service docker start
#检查docker是否正常
(base) root@DESKTOP:~# service docker status
七、Docker 常用命令
7.1 查看命令
查看Docker版本信息: docker version
或 docker info
7.2 镜像命令
搜索镜像: docker search <镜像名>
拉取镜像: docker pull <镜像名>
或 docker pull <镜像名>:<标签>
查看本地镜像: docker images
删除镜像: docker rmi <镜像ID或名称>
或 docker rmi -f <镜像ID或名称>
构建镜像: docker build <路径>
保存镜像为文件: docker save -o <文件名> <镜像名>
从文件加载镜像: docker load -i <文件名>
7.3 容器命令
列出运行中的容器: docker ps
列出所有容器: docker ps -a
停止容器: docker stop <容器ID或名称>
强制停止容器: docker kill <容器ID>
启动已停止的容器: docker start <容器ID或名称>
查看容器详细信息: docker inspect <容器ID>
查看容器日志: docker logs <容器ID>
查看容器内进程: docker top <容器ID>
进入运行中的容器: docker exec -it <容器ID> /bin/bash
退出容器: exit
或 ctrl+p+q
(不关闭容器)
删除容器: docker rm <容器ID或名称>
或 docker rm -f <容器ID>
7.4 数据卷命令
列出所有数据卷: docker volume ls
创建数据卷: docker volume create <卷名>
删除数据卷: docker volume rm <卷名>
查看数据卷详细信息: docker volume inspect <卷名>
7.5 镜像导入/导出
docker images
# 查看需要导出的镜像名
导出docker 镜像:docker save -o xxx.tar.gz <要导出的镜像名>
导入docker 镜像:docker load -i <要导入的镜像名如 xxx.tar.gz >
八、问题排查
8.1 使用 systemctl 启动 docker 失败 bus: Host is down
[!error]
systemctl start dockerSystem has not been booted with systemd as init system (PID 1). Can’t operate.
Failed to connect to bus: Host is down
改为service 启动service docker start
service docker status
8.2 启动 docker 失败 error=“open /proc/sys/net/ipv4/ip_local_port_range”
[!info]
(base) root@DESKTOP:~#service docker start
* Starting Docker: docker [ OK ]
(base) root@DESKTOP:~#service docker status
* Docker is not running
cat /var/log/docker.log
# 日志报错信息
[!error]
time=“xxxxx” level=info msg=“falling back to default port range 49153-65535” error=“open /proc/sys/net/ipv4/ip_local_port_range: no such file or directory”
echo 1 > /proc/sys/net/ipv4/ip_forward
# 开启转发后还是启动失败
[!info]
(base) root@DESKTOP:~#iptables --version
iptables: Failed to initialize nft: Protocol not supported
原因:
使用了 iptables-nft
解决:update-alternatives --config iptables
//切换iptables-legacy
8.3 docker 下载容器失败 overlay mount to
[!error]
提示: failed to register layer: error creating overlay mount to /var/lib/docker/overlay2/05ba20ae1d95cdba7be439e60d080dfeceda2cec0ae8/merged: invalid argument
原因:
使用了 wsl1 Docker 无法识别底层文件系统
wsl -l -v 确认是否运行在 wsl 1 ,
解决:
升级到 wsl2
参考: 08_Win+wsl2+Ubuntu(个人大模型开发测试运行基础环境)
本文/视频中引用了部分来源于网络的公开素材。若版权方认为存在侵权,请通过留言等方式联系,我将立即予以处理并深表感谢。
更多推荐
所有评论(0)