1. Information
2. Linux
2.1. Installation
-
Enter the following commands at a Command Line.
# Uninstall all conflicting packages. sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-doc podman-docker containerd runc | cut -f1) # Add Docker's official GPG key. sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add repository to Apt sources. cat << EOF | sed -e "s/^ //" | sudo tee /etc/apt/sources.list.d/docker.sources Types: deb URIs: https://download.docker.com/linux/debian Suites: $(. /etc/os-release && echo "$VERSION_CODENAME") Components: stable Signed-By: /etc/apt/keyrings/docker.asc EOF ls -al /etc/apt/sources.list.d cat /etc/apt/sources.list.d/docker.sources sudo apt-get update # Install latest version. sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # Verify Docker is running. sudo systemctl status docker # Verify that installation is successful by running hello-world image. sudo docker run hello-world
2.2. Configuration
-
Enter the following commands at a Command Line.
# Configure Docker to start on boot with systemd. sudo systemctl enable docker.service sudo systemctl enable containerd.service # Add user to docker group. sudo usermod -aG docker $USER cat /etc/group | grep -i docker -
Log out and log in again.
2.3. Usage
-
Enter the following commands at a Command Line.
sudo docker run --interactive --tty debian bash # Do your thing. exit sudo ls -al /var/lib/docker/containers docker ps --all -
Contents of Dockerfile.
FROM debian:latest # See https://code.visualstudio.com/remote/advancedcontainers/add-nonroot-user ARG USERNAME=delta ARG USER_UID=1000 ARG USER_GID=$USER_UID # Create the user RUN groupadd --gid $USER_GID $USERNAME \ && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \ # # [Optional] Add sudo support. Omit if you don't need to install software after connecting. && apt-get update \ && apt-get install -y sudo \ && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ && chmod 0440 /etc/sudoers.d/$USERNAME # ******************************************************** # * Anything else you want to do like clean up goes here * # ******************************************************** # [Optional] Set the default user. Omit if you want to keep the default as root. USER $USERNAME# Create Dockerfile docker build -t delta/debian . docker images sudo docker run --interactive --rm --tty delta/debian bash # Do your thing. exit # Remove all containers. docker container prune# Create/change a root password in a running container. docker exec --interactive --tty --user 0 <container> passwd -
See https://www.baeldung.com/ops/root-user-password-docker-container.
cat Dockerfile12 FROM debian:latest RUN apt-get update RUN useradd --comment "Delta Software Labs" --create-home delta USER delta CMD ["/bin/bash"] docker build --file Dockerfile12 --tag delta-debian . docker run --detach --interactive --name delta-debian delta-debian docker ps docker exec --interactive --tty delta-debian bash docker stop <id> docker container prune
-
Enter the following commands at a Command Line.
sudo docker run hello-world sudo docker run --interactive --tty ubuntu /bin/bash sudo docker run debian:8 /bin/echo 'Hello world' sudo docker run ubuntu:14.04 /bin/echo 'Hello world' -
In ~/.docker/config.json change credsStore to credStore.
docker network create nginx-proxy
docker run -p 8080:8080 lissy93/dashy
2.4. Connect to Running Container
-
Enter the following commands at a Command Line.
docker ps docker exec -it <container-name> /bin/bash docker exec -it <container-name> /bin/sh