在U盘/移动硬盘上安装热插拔式Ubuntu系统,并将Docker目录挂载到NTFS硬盘

Windows10+的WSL2的确给开发人员带来了很多方便,但是仍然有很多缺点。比如:太占系统内存;有些软件无法在WSL2中编译成功;相当于虚拟机,性能不如原装系统。

装双系统,相信大家都不陌生,但它会占用更多硬盘空间。在此记录一下如何在移动硬盘中安装Ubuntu系统、Docker运行环境、并将Docker的数据存放目录设置在NTFS格式或其他非ext4格式的移动硬盘中。方便保留更多空间给移动硬盘用于文件传输。

1. 制作Ubuntu安装介质

Ubuntu官网下载ISO镜像,并通过软碟通的“写入硬盘镜像”刻录到一个U盘中。 

2. 安装Ubuntu系统

将U盘安装盘和要运行Ubuntu系统的移动硬盘同时插入一台电脑,选择U盘作为启动项。根据指引开始安装Ubuntu系统,在进行到分区的步骤时,按如下方式进行手动分区:

启动分区: /boot 1024m ext4格式

交换分区: swap 8192m

根目录: / 至少25G左右 ext4格式

剩下的空间可以在Window系统中格式化为NTFS文件系统,这样无论是在Ubuntu还是Windows中都可见,可以用于数据传输。然后一步一步往下安装等待完成重启就可以了。

3. Ubuntu系统的设置

Ubuntu安装完成后仍然有很多瑕疵。比如独显驱动并非NVIDIA驱动等。还有如下一些典型问题。

3.1 时区不一致问题。

Ubuntu系统的时区一般会和Windows差个8小时,可以通过终端中运行如下命令进行统一:


                
<think> 根据用户需求,用户希望在CentOS 7系统上离线安装DockerDocker的数据目录挂载到/home目录下。结合引用内容,我们可以通过以下步骤实现: 1. **准备离线安装包**:下载Docker及其依赖的离线安装包,传输到目标机器。 2. **安装Docker**:使用离线包进行安装。 3. **停止Docker服务**:在修改数据目录前停止Docker服务。 4. **创建新的数据目录**:在/home目录下创建新的数据目录,例如`/home/docker`。 5. **迁移数据**:将默认数据目录(通常是`/var/lib/docker`)的内容迁移到新的目录。 6. **修改Docker配置文件**:将新的数据目录配置到Docker的启动选项中。 7. **重新启动Docker**:启动服务使用新配置。 8. **验证**:检查Docker是否使用新的数据目录。 具体步骤如下: ### 1. 准备离线安装包 由于是离线环境,需要提前在有网络的环境中下载Docker及其依赖包。可以使用`yumdownloader`工具下载。假设我们下载到`/home/software/docker-offline`目录。 ```bash # 在有网络的CentOS 7机器上执行 mkdir -p /home/software/docker-offline cd /home/software/docker-offline sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yumdownloader --resolve docker-ce ``` 然后将整个目录打包复制到目标机器。 ### 2. 安装Docker 在目标机器上,进入离线包目录,使用`rpm`安装所有包。 ```bash cd /home/software/docker-offline sudo rpm -ivh *.rpm ``` ### 3. 停止Docker服务 安装完成后,先停止Docker服务,因为我们即将修改数据目录。 ```bash sudo systemctl stop docker ``` ### 4. 创建新的数据目录 在/home目录下创建新的数据目录,例如: ```bash sudo mkdir -p /home/docker ``` ### 5. 迁移数据 将默认数据目录(/var/lib/docker)的内容迁移到新目录。注意,如果原目录已有数据(例如之前运行过Docker),需要迁移;如果是全新安装,则只需创建空目录。 ```bash # 如果原目录有数据,则迁移 sudo cp -a /var/lib/docker/* /home/docker/ # 或者使用mv命令彻底移动(建议先备份) # sudo mv /var/lib/docker/* /home/docker/ ``` ### 6. 修改Docker配置文件 修改Docker的启动配置文件,指定新的数据目录。编辑`/etc/docker/daemon.json`文件(如果不存在则创建),添加以下内容: ```json { "data-root": "/home/docker" } ``` 另外,如果使用systemd管理服务,可以修改服务配置文件。创建或编辑`/etc/systemd/system/docker.service.d/docker.conf`(如果不存在则创建),添加以下内容: ``` [Service] ExecStart= ExecStart=/usr/bin/dockerd --data-root=/home/docker ``` ### 7. 重新加载配置启动Docker ```bash # 重新加载systemd配置 sudo systemctl daemon-reload # 启动Docker服务 sudo systemctl start docker # 设置开机启动 sudo systemctl enable docker ``` ### 8. 验证 检查Docker是否使用新的数据目录: ```bash sudo docker info | grep "Docker Root Dir" ``` 输出应为:`Docker Root Dir: /home/docker` ### 注意事项 - **权限问题**:确保新目录的权限正确,Docker服务(通常是root用户)有读写权限。 - **存储驱动**:如果之前使用的是不同的存储驱动(如overlay2),迁移后可能需要注意驱动兼容性。 - **磁空间**:确保/home目录有足够的空间。 ### 引用说明 上述步骤参考了引用[1]中关于修改Docker默认数据目录的步骤(停止服务、迁移数据、修改配置)和引用[2]中关于Docker容器挂载卷的示例(目录映射概念),以及引用[3]中关于离线安装Docker的方法(下载依赖包)。 [^1]: [linux挂载硬盘,查看硬盘,格化分区,创建挂载点,挂载逻辑卷,普通方挂载,LVM方挂载,查看linux卷组的剩余空间,创建指定大小的逻辑卷、使用剩余空间创建逻辑卷,ext4与xfs区别-优快云博客](https://blog.youkuaiyun.com/...) [^2]: [离线安装Docker使用。详细信息中包含了镜像的版本,下载地址,配置路径等信息。](https://...) [^3]: [Centos7.2 Redhat7.2 离线安装docker](https://...) §§相关问题§§ 1. 如何验证Docker是否成功使用了新的数据目录? 2. 如果迁移数据后Docker无法启动,应该如何排查? 3. 除了修改数据目录,还有哪些方可以优化Docker的存储? </think>### CentOS 7离线安装Docker挂载到/home目录的方法 #### 一、准备工作 1. **下载离线包**(需联网环境) 在有网络的CentOS 7机器上执行: ```bash mkdir -p ~/docker-offline yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yumdownloader --resolve docker-ce docker-ce-cli containerd.io ``` 将生成的`*.rpm`文件(在`~/docker-offline`目录)拷贝到离线服务器。 2. **创建挂载目录** ```bash sudo mkdir -p /home/docker # 新数据目录 ``` #### 二、离线安装Docker ```bash # 进入离线包目录 cd ~/docker-offline # 安装所有依赖包 sudo rpm -ivh *.rpm --nodeps --force # 启动Docker服务 sudo systemctl start docker sudo systemctl enable docker ``` #### 三、迁移数据目录到/home 1. **停止Docker服务** ```bash sudo systemctl stop docker ``` 2. **迁移数据**(保留原有配置) ```bash sudo cp -a /var/lib/docker/* /home/docker/ # 复制原数据 sudo rm -rf /var/lib/docker # 删除原目录 ``` 3. **创建符号链接** ```bash sudo ln -s /home/docker /var/lib/docker # 建立软链接 ``` 4. **修改systemd配置** 创建配置文件: ```bash sudo mkdir -p /etc/systemd/system/docker.service.d sudo tee /etc/systemd/system/docker.service.d/docker.conf <<EOF [Service] ExecStart= ExecStart=/usr/bin/dockerd --data-root=/home/docker EOF ``` 5. **重载配置启动** ```bash sudo systemctl daemon-reload sudo systemctl start docker ``` #### 四、验证配置 ```bash # 检查存储路径 docker info | grep "Docker Root Dir" # 输出应显示:Docker Root Dir: /home/docker # 测试容器运行 docker run --rm hello-world ``` #### 五、关键说明 1. **权限问题**:确保`/home/docker`目录权限: ```bash sudo chmod -R 755 /home/docker sudo chown -R root:root /home/docker # 根据实际用户组调整 ``` 2. **磁空间**:使用`df -h`确认`/home`分区有足够空间。 3. **防火墙**:如需远程访问,需开放端口: ```bash sudo firewall-cmd --add-port=2375/tcp --permanent sudo firewall-cmd --reload ``` > **引用说明**: > 迁移步骤参考了Docker数据目录修改的标准流程[^1],符号链接和systemd配置方法借鉴了容器持久化存储的最佳实践[^2],离线安装流程基于CentOS 7的依赖解析方案[^3]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值