Difference between revisions of "Docker install"
Jump to navigation
Jump to search
| Line 1: | Line 1: | ||
# Install | # Install | ||
| − | ## Ubuntu Install using zfs for data | + | ## Ubuntu Docker-CE Install using zfs for data mount |
``` | ``` | ||
#!/bin/bash | #!/bin/bash | ||
Latest revision as of 23:10, 19 June 2026
Install
Ubuntu Docker-CE Install using zfs for data mount
#!/bin/bash
set -e
DATASET_NAME="tank-nvme/docker"
DOCKER_DIR="/var/lib/docker"
if ! sudo zfs list "${DATASET_NAME%%/*}" &>/dev/null; then
echo "Error: ZFS pool '${DATASET_NAME%%/*}' does not exist." >&2
exit 1
fi
if sudo zfs list "$DATASET_NAME" &>/dev/null; then
echo "ZFS dataset $DATASET_NAME already exists."
else
sudo zfs create -o mountpoint=legacy "$DATASET_NAME"
fi
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo mkdir -p "$DOCKER_DIR"
if ! mountpoint -q "$DOCKER_DIR"; then
sudo mount -t zfs "$DATASET_NAME" "$DOCKER_DIR"
fi
if ! grep -q "$DATASET_NAME" /etc/fstab; then
echo "$DATASET_NAME $DOCKER_DIR zfs defaults 0 0" | sudo tee -a /etc/fstab > /dev/null
fi
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json > /dev/null <<EOF
{
"storage-driver": "zfs"
}
EOF
sudo systemctl start docker
sleep 5
sudo docker run hello-world