Transitioning Docker from Rootful to Rootless (Offline Setup)
Here’s a diagram illustrating the process of setting up Docker in rootless mode on a machine without internet access:
Note:
- Sudo access is required on both the remote and local machines.
- Internet access is required on the local machine.
On Machine with Internet Access (Local Machine)
-
Download Required Packages
Download the necessary packages on your source machine using the command:
sudo dnf install --downloadonly --downloaddir=pkg_folder <pkg_name>Required Packages:
-
docker-ce-rootless-extras.rpm -
uidmap.rpm -
libslirp0.rpm -
slirp4netns.rpm
Note: For downloading
.rpmpackages without installing them, refer to this link. -
-
Ship Packages to Remote Machine
Use
scpto transfer the.rpmpackages from the local machine to the remote machine:scp ./packages/* <remote_user>@<remote_ip>:~/packages/ -
Install Dependencies on Target Machine
Install all the dependency packages using:
rpm -ivh ./package.rpmNote: For installing the packages, refer to the link provided.
-
Enable Rootless Docker
Verify
dockerd-rootless-setuptool.shCheck if
dockerd-rootless-setuptool.shis present in/usr/bin:ls /usr/bin/ | grep dockerd-rootless-setuptool.shNote: If the script is not present, ensure that the
docker-ce-rootless-extraspackage was installed correctly.Set Up Rootless Docker
Run the installation command as a non-root user:
/usr/bin/dockerd-rootless-setuptool.sh install -
Verify Docker is Running Rootless
Run the following to confirm Docker is operating in rootless mode:
docker ps
Additional Commands for Downloading Packages
-
Download Docker rootless extras package:
sudo dnf install -y --download-only docker-ce-rootless-extras -
Download
uidmappackage:sudo dnf install -y --download-only uidmap -
Download
slirp4netnspackage:sudo apt install -y --download-only slirp4netns -
Download
libslirp0package:sudo apt install -y --download-only libslirp0
The downloaded packages will be saved in the /var/cache/apt/archives directory.
Transfer Packages to Target Machine Using scp
scp /var/cache/apt/archives/docker-ce-rootless-extras_5%3a27.0.3-1~ubuntu.20.04~focal_amd64.deb [email protected]:~/
scp /var/cache/apt/archives/uidmap_1%3a4.8.1-1ubuntu5.20.04.5_amd64.deb [email protected]:~/
scp /var/cache/apt/archives/slirp4netns_0.4.3-1_amd64.deb [email protected]:~/
scp /var/cache/apt/archives/libslirp0_4.1.0-2ubuntu2.2_amd64.deb [email protected]:~/Machine Without Internet Access (Target Machine)
-
Install Transferred Packages
On the target machine, navigate to the directory where the packages were transferred and install them using
dpkg:sudo dpkg -i docker-ce-rootless-extras_5%3a27.0.3-1~ubuntu.20.04~focal_amd64.deb sudo dpkg -i uidmap_1%3a4.8.1-1ubuntu5.20.04.5_amd64.deb sudo dpkg -i slirp4netns_0.4.3-1_amd64.deb sudo dpkg -i libslirp0_4.1.0-2ubuntu2.2_amd64.deb