一、安装docker

参考 Ubuntu22.04 安装docker

sudo apt update
sudo apt upgrade
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

sudo echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

安装上述步骤成功安装docker

二、重新挂载docker数据

原始docker中所有的容器和镜像都在硬盘中,需要将这个docker容器和镜像加载到新的docker中

1.挂载硬盘

sudo mount /dev/sdb ~/data
sudo mount /dev/sda ~/data1

其中data路径下包含着所有内容的docker文件:Docker_storage

2.修改配置文件

首先停止docker运行

sudo systemctl stop docker

其次在/etc/docker目录下创建daemon.json并添加data-root路径

{
  "data-root": "/home/ps/data/Docker_storage"
}

最后重新启动docker

sudo systemctl restart docker

三、安装nvidia docker

如果有的容器是使用nvidia启动的,那需要安装nvidia docker

参考 链接1 链接2

具体操作

首先添加源

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

然后下载并运行

sudo apt-get update

sudo apt-get install -y nvidia-container-toolkit

sudo nvidia-ctk runtime configure --runtime=docker

sudo systemctl restart docker

四、运行Portainer管理容器 

sudo docker run   -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

如果docker为26.0.0以上,打开容器控制台会出现问题 参考 文章

五、其他问题

安装好docker启动容器时出现错误,开始误以为网络错误进行了以下设置

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

结果导致9000端口页面打开失败,然后恢复成原来设置可以正常连接

sudo update-alternatives --set iptables /usr/sbin/iptables-nft
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-nft

 为什么要设置网络,参照之前遇到的问题。总之如果能正常启动就不要做额外的操作

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐