Skip to content

Instantly share code, notes, and snippets.

@samsulmaarif
Last active October 5, 2020 13:28
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save samsulmaarif/55ba98461920315d27179d81a4f864b4 to your computer and use it in GitHub Desktop.
Save samsulmaarif/55ba98461920315d27179d81a4f864b4 to your computer and use it in GitHub Desktop.

Install Docker

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt install -y apt-transport-https
sudo apt-get update
apt-cache policy docker-ce
sudo apt-get install -y docker-ce
sudo systemctl status docker

Executing the Docker Command Without Sudo (Optional)

sudo usermod -aG docker ${USER}
sudo usermod -aG docker samsul
#logout and close terminal

Using the Docker Command

docker [option] [command] [arguments]
docker
docker [docker-subcommand] --help
docker info

Running a Docker Container

docker run ubuntu:14.04 echo "Hello World"
docker run ubuntu ps ax
docker run -d -it ubuntu bash
docker run -d -it ubuntu:14.04 bash
docker run -d -it debian bash
docker exec -it [Container ID] bash
docker inspect [Container ID] |grep IP

docker run -d -P nginx
docker run -d -p 8080:80 nginx 
docker ps -a
#Buka browser masukan IP host:[port]

Images and Volumes

mkdir test
cd test

vim Dockerfile
FROM ubuntu:14.04
RUN apt update
RUN apt install -y curl
RUN apt install -y vim

docker build -t samsulmaarif/test-image:1.0 .
docker images
docker run -d -it samsulmaarif/test-image:1.0 bash
docker ps -a
docker exec -it [CONTAINER-ID] bash
which vim
which curl

#Tips
docker ps -a -f status=exited
docker rm $(docker ps -a -f status=exited -q)
docker ps -a -f "name=nostalgic_stallman"

Push Image to hub.docker.com

docker login
docker push samsulmaarif/test-image:1.0
docker pull [username]/[nama-image]:1.0
docker rmi [nama-image]

Volumes

mkdir myvolume
cd myvolume
echo "ini file dari volumes" > index.html
docker run -d -it --hostname nginx1 --name nginx1 -p 8080:80 -v /home/samsul/myvolume:/usr/share/nginx/html nginx

Portainer

https://hub.docker.com/r/portainer/portainer/

docker run -d -p 9000:9000 --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer

Docker compose

sudo apt install -y docker-compose apache2-utils curl

mkdir compose
cd compose
docker volume create db_data

vim docker-compose.yml

version: '2'
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

docker-compose up -d

https://docs.docker.com/compose/reference/

Remove All Container

docker rm -f $(docker ps -a -q)

Docker Swarm Initializing The Cluster Manager

ip addr
docker swarm init --advertise-addr [node_ip_address]

Adding Nodes to the Cluster

docker swarm join --token [your_swarm_token] [manager_node_ip_address]:2377

Managing The Cluster

docker node ls

docker node --help
docker node inspect self --pretty
docker node inspect [hostname-worker] --pretty

Promote manager

docker node promote [name-node]
docker node demote [name-node-leader]

Run the Visualizer

docker run -it -d -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock dockersamples/visualizer
# Buka browser [ip-manager]:8080

Running Services in the Docker Swarm

docker service create -p 8090:80 --name webserver nginx
docker service ls
docker service ps webserver

Scale out

docker service scale webserver=10
docker service ps webserver
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment