//Get the ip address 192.168.99.100
$ ssh root@<vm_enp0s3_ip> $ sudo apt update $ sudo apt install apt-transport-https ca-certificates curl software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - //Add the Kubernetes signing key $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" //Add docker $ sudo systemctl status docker //Display docker.service logs $ sudo nano /lib/systemd/system/docker.service //Add -H=tcp://0.0.0.0:5555 at the end of ExecStart= $ systemctl daemon-reload $ sudo service docker restart $ sudo docker run hello-world //Run hello-world from library
$ sudo apt update $ apt-cache policy docker-ce $ sudo apt install docker-ce $ sudo dockerd-ce --help
$ 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 $ sudo chmod +x /usr/local/bin/docker-compose $ docker-compose --version
$ base=https://github.com/docker/machine/releases/download/v0.16.0 && curl -L
$ sudo systemctl status docker //Display docker.service logs $ sudo docker ps //Display running containers $ sudo docker info //Display info, list warnings $ sudo docker images //Display all images $ sudo docker container ls --all //Display all containers $ sudo docker container ls --filter status=running //Display running containers $ sudo docker stop //Stop container
$ curl http://<vm_enp0s3_ip>:5555/images/json $ curl http://<vm_enp0s3_ip>:5555/containers/json
$ docker #List Docker CLI commands $ docker container --help $ docker --version //Display Docker version $ docker info //Display Docker info $ docker run hello-world //Execute Docker image $ docker image ls //List Docker images $ docker container ls //List Docker running containers $ docker container ls -a //List Docker all containers $ docker container ls -aq //List Docker all in quit mode containers
$ git clone $ scp -r web-page root@192.168..:/root/lab #Copy from host to server, need openssh-server on server
$ cd lab/web-page $ docker build --tag=friendlyhello . //Build the app $ docker ps $ docker tag friendlyhello kbonis/get-started:part2 //Tag app into /: $ docker login //Login to push images in repository: username=kbonis, password=**** $ docker push kbonis/get-started:part2 //Push image to repository $ docker run -d -p 4000:80 friendlyhello //Run from local image in backround $ docker run -p 4001:80 kbonis/get-started:part2 //Run from repository image
$ docker build -t friendlyhello . //Create image using this directory's Dockerfile
$ docker run -p 4000:80 friendlyhello //Run "friendlyhello" mapping port 4000 to 80
$ docker run -d -p 4000:80 friendlyhello //Same thing, but in detached mode
$ docker container ls //List all running containers
$ docker container ls -a //List all containers, even those not running
$ docker container stop //Gracefully stop the specified container
$ docker container kill //Force shutdown of the specified container
$ docker container rm //Remove specified container from this machine
$ docker container rm //Remove specified image from this machine
$ docker image rm
username/repository:tag //Tag
for upload to registry
$ docker push username/repository:tag //Upload tagged image to registry
$ docker run username/repository:tag //Run image from a registry
$ docker swarm init $ docker stack deploy -c docker-compose.yml getstartedlab $ docker stack services getstartedlab $ docker stack ls $ docker stack ps getstartedlab $ docker stack rm getstartedlab $ docker service ls $ docker service ps getstartedlab_web $ docker container ls -q $ docker swarm leave --force
$ docker-machine rm
$ docker-machine create default //Create a VM
$ docker-machine create --driver virtualbox myvm1 //Create a VM
$ docker-machine create --driver virtualbox myvm2 //Create a VM
$ docker-machine env default //Get node(VM) details
$ docker-machine env myvm1 //Get node(VM) details
$ docker-machine env myvm2 //Get node(VM) details
$ eval "$(docker-machine env myvm1)" //Make VM active
$ docker-machine ls //Get a list of VM's
$ docker-machine ssh myvm1 "docker swarm init --advertise-addr 192.168.99.108" //Make VM a manager, copy the command to add worker
$ docker-machine ssh myvm2 "docker swarm join --token SWMTKN-1-6c3wuc9xoqs43cylt86boml3t5wd1ca0qbk6v8xijsxcn5v4hj-dm3qcrlrpeetbcuz8f4y3k7fp 192.168.99.108:2377" //Make VM a worker
$ docker-machine ssh myvm1 "docker node ls" //Get a list of managers and workers
$ eval
$ docker-machine create --driver virtualbox myvm1 //Create a VM (Mac, Win7, Linux)
$ docker-machine env myvm1 //View basic information about your node
$ docker-machine ssh myvm1 "docker node ls" //List the nodes in your swarm
$ docker-machine ssh myvm1 "docker node inspect " //Inspect a node
$ docker-machine ssh myvm1 "docker swarm join-token -q worker" //View join token
$ docker-machine ssh myvm1 //Open an SSH session with the VM; type "exit" to end
$ docker node ls //View nodes in swarm (while logged on to manager)
$ docker-machine ssh myvm2 "docker swarm leave" //Make the worker leave the swarm
$ docker-machine ssh myvm1 "docker swarm leave -f" //Make master leave, kill swarm
$ docker-machine ls //list VMs, asterisk shows which VM this shell is talking to
$ docker-machine start myvm1 //Start a VM that is currently not running
$ docker-machine env myvm1 //show environment variables and command for myvm1
$ eval
$ docker-machine ls //Make sure asterisk is on myvm1(manager) // Update docker-compose.yml to add multiple services $ docker-machine ssh myvm1 "mkdir ./data" //Add folder for Redis DB $ docker stack deploy -c docker-compose.yml getstartedlab