一、安装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
具体操作
首先添加源
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
为什么要设置网络,参照之前遇到的问题。总之如果能正常启动就不要做额外的操作