ubuntu 22.04 安装docker

一、安装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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值