Ubuntu 20.04 安装Docker到指定目录

本文指导如何在Ubuntu系统中,修改Docker的默认存储目录为/home/$USR/docker,通过编辑daemon.json配置文件,添加新存储位置,并确保Docker服务重启后生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

装双系统时给根目录(/)只分了80G,而给/home分了500G。但是Docker 默认安装的情况下,会使用 /var/lib/docker/ 目录作为存储目录,用以存放拉取的镜像和创建的容器等,所以想在安装Docker的时候,就直接安装到我的指定目录下(例如/home/$USR/docker/)

一、修改配置文件

sudo gedit /etc/docker/daemon.json

默认情况下这个配置文件是没有的,这里实际也就是新建一个,然后写入以下内容:

{
  "data-root": "/home/$USR/docker"
}

这里data-root就是你指定的存储目录,如果装在自己用户的主文件夹下,那么$USR就是你的用户名

二、安装 Docker

首先,更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

导入源仓库的 GPG key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

将 Docker APT 软件源添加到系统:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

安装 Docker 最新版本:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

一旦安装完成,Docker 服务将会自动启动。可以输入下面的命令验证:

sudo systemctl status docker

想要以非 root 用户执行 Docker 命令,你需要将你的用户添加到 Docker 用户组,该用户组在 Docker CE 软件包安装过程中被创建:

sudo usermod -aG docker $USER

这里$USER是一个环境变量,代表当前用户名

三、配置生效

# 加载配置
systemctl daemon-reload
#启动docker并且设置开机启动
systemctl enable docker && systemctl restart docker

这是指定的目录下就会出现原来在/var/lib/docker/ 出现的文件和目录:

这时查看Docker信息:

docker info
Client: Docker Engine - Community
 Version:    26.0.0
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.13.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.25.0
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 26.0.0
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: runc io.containerd.runc.v2
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
 Kernel Version: 5.15.0-102-generic
 Operating System: Ubuntu 20.04.6 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 12
 Total Memory: 15.49GiB
 ID: e381a554-cb09-4f8d-ade0-f8ed5222f8f4
 Docker Root Dir: /home/$USR/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

就会发现 Docker Root Dir 已经改好

Ubuntu 20.04安装Docker可能会遇到一些问题,特别是如果网络连接不稳定或者依赖包缺失。以下是安装步骤以及可能出现问题的一些建议: 1. **更新系统**: 首先确保你的系统是最新的: ``` sudo apt update sudo apt upgrade ``` 2. **安装依赖**: 安装Docker需要一些额外的依赖,包括apt-transport-https: ``` sudo apt install apt-transport-https ca-certificates curl software-properties-common ``` 3. **添加Docker GPG key**: 添加官方Docker仓库的公钥: ``` curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ``` 4. **添加Docker仓库**: 使用apt-key命令将Docker的仓库添加到系统的信任列表: ``` echo "deb [arch=amd64 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 ``` 5. **刷新并安装Docker**: 更新软件源,并安装Docker: ``` sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io ``` 6. **启动和运行Docker**: 启动Docker服务并设置开机自启: ``` sudo systemctl start docker sudo systemctl enable docker ``` 如果你在安装过程中遇到错误,可能是网络问题、权限问题或是依赖库的问题。检查网络是否通畅,确认是否有足够的磁盘空间,以及查看sudo权限是否正常。如果有其他问题,可以尝试清除缓存并重新开始安装过程: ```bash sudo rm -rf /var/lib/apt/lists/* sudo apt-get clean sudo apt-get autoclean ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值