# Install Docker & Docker Machine on Ubuntu 19.04 Docker & Docker Compose installation guide for debian-based systems. ## Install: docker Install docker using the official [docker install](https://github.com/docker/docker-install) script: ```commandline $ curl -fsSL get.docker.com | sudo sh ``` You should be able to run: `docker --version` Now, let's enable managing docker as non-root: 1. Create the docker-group (might exists already): `sudo groupadd docker` 1. Add current user to the group: `sudo usermod -aG docker $USER` 1. Group membership re-evaluation: `newgrp docker` You should be able to run the classic "hello world" image: ```commandline $ docker run hello-world ``` **Recommended**: Enable docker to start on-boot by running `sudo systemctl enable docker`. ## Install: docker-compose Check the lastest relase on the [office github page](https://github.com/docker/compose/releases). Download with `curl`: ```commandline $ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` Give compose executable permissions: ```commandline $ sudo chmod +x /usr/local/bin/docker-compose ``` Test by getting the version: ```commandline $ docker-compose --version ``` **Recommended**: Install the [command completition](https://docs.docker.com/compose/completion/) options. ## Example See a comprehensive example on how to use docker & docker-compose in [this blogpost](https://rhdzmota.com/post/docker-and-docker-compose-example/). ## References * https://github.com/docker/docker-install * https://docs.docker.com/install/linux/linux-postinstall/ ## Long way? Determine your cpu architecture (e.g. x86_64): ```commandline $ lscpu | grep Architecture ``` Now download the lastest docker version available for your architecture from [this page](https://download.docker.com/linux/static/stable/). You can use either the UI or via `curl`: ```commandline curl -L -o /tmp/docker.tgz https://download.docker.com/linux/static/stable/x86_64/docker-18.09.7.tgz ``` Install docker: ```commandline $ tar xvzf /tmp/docker.tgz -C /tmp && \ sudo mv /tmp/docker/* /usr/bin ``` Docker is now installed in your system `docker --help` but network controller might not be configured yet. Configure the [network controller](https://github.com/docker/for-linux/issues/123): ```commandline $ sudo ip link add name docker0 type bridge $ sudo ip addr add dev docker0 172.17.0.1/16 ``` Now manually start the docker deamon by typing: ```commandline $ sudo dockerd ``` You should be able to: ```commandline $ sudo docker ps ``` And unmask the docker service with `systemctl`: ```commandline $ sudo systemctl unmask docker.socket $ sudo systemctl start docker.service ``` ## Docker Compose See the latest release from this github page. Download with `curl`: ```commandline $ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` Give compose executable permissions: ```commandline $ sudo chmod +x /usr/local/bin/docker-compose ``` Test by getting the version: ```commandline $ docker-compose --version ``` You can install [command completition](https://docs.docker.com/compose/completion/). ## References https://docs.docker.com/install/linux/docker-ce/ubuntu/ https://askubuntu.com/questions/1030179/package-docker-ce-has-no-installation-candidate-in-18-04 https://docs.docker.com/machine/install-machine/ https://itsfoss.com/dpkg-returned-an-error-code-1/ https://medium.com/@Grigorkh/how-to-install-docker-on-ubuntu-19-04-7ccfeda5935 https://containerd.io/downloads/ https://www.linux.com/learn/understanding-and-using-systemd https://download.docker.com/linux/static/stable/x86_64/ https://github.com/docker/for-linux/issues/123 https://stackoverflow.com/questions/37227349/unable-to-start-docker-service-in-ubuntu-16-04