kemalelmizan / docker-training

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Docker

Installation

  1. Sign up for a docker ID
  2. Choose docker CE from docker store
  3. Open terminal, run docker -v
  4. docker run busybox echo hello world
  5. docker ps -a
  6. docker rm <image_name>

Playing with Alpine (very small linux container)

  1. docker run --name myalpine -it --rm alpine sh for git bash in windows: winpty docker run --name myalpine -it --rm alpine sh
  2. in separate terminal: docker ps -a
  3. in alpine shell: apk update && apk add --no-cache curl git zsh nano
  4. install oh-my-szh: sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  5. nano ~/.zshrc
  6. choose your theme, and change ZSH_THEME. e.g.: ZSH_THEME="bira"
  7. ctrl + o, ctrl + x
  8. zsh
  9. exit x2

Playing with node docker image

  1. docker run -p 3000:3000 --name mynode -it --rm node:alpine sh
  2. node -v
  3. npm -v
  4. npm install -g create-react-app
  5. create-react-app --version
  6. mkdir ~/Projects
  7. cd ~/Projects
  8. create-react-app test-react
  9. cd test-react
  10. npm start
  11. Open in localhost:3000 host browser

Starting postgres

  1. docker pull postgres:alpine
  2. docker run -p 5432:5432 --name purwadhika-postgres1 -e POSTGRES_PASSWORD=pwd123 -d postgres:alpine
  3. docker ps -a
  4. docker exec -it purwadhika-postgres1 psql --version
  5. docker exec -it purwadhika-postgres1 psql -U postgres -c 'SELECT version();'
  6. docker exec -it -e PGPASSWORD=pwd123 purwadhika-postgres1 psql -U postgres
  7. \l
  8. create database test;
  9. \c test
  10. create table users (name text, email text);
  11. \d
  12. insert into users values ('kemal', 'kemalelmizan@gmail.com');
  13. select * from users;
  14. \q to quit

Postgres without daemon, e.g. to run pg_dump

  1. docker run -it --rm postgres:alpine bash
  2. pg_dump --help
  3. exit

Starting mysql

  1. docker pull mysql:latest
  2. docker run -p 3306:3306 --name purwadhika-mysql1 -e MYSQL_ROOT_PASSWORD=pwd1234 -d mysql:latest
  3. docker ps -a
  4. docker exec -it purwadhika-mysql1 mysql --version
  5. docker exec -it purwadhika-mysql1 mysql -h"localhost" -P"3306" -u"root" -p"pwd1234" -e"SELECT VERSION();"
  6. docker exec -it purwadhika-mysql1 mysql -u"root" -p"pwd1234"
  7. create database test;
  8. show databases;
  9. use test;
  10. create table users (name text, email text);
  11. describe users;
  12. show tables;
  13. insert into users values ('kemal', 'kemalelmizan@gmail.com');
  14. select * from users;
  15. \q to quit

Starting mongo

  1. docker run -p 27017:27017 --name purwadhika-mongo1 -d mongo:latest
  2. docker exec -it purwadhika-mongo1 mongo
  3. Run mongo commands in CLI

Starting redis

  1. docker run -p 6379:6379 --name purwadhika-redis1 -d redis:alpine
  2. docker exec -it purwadhika-redis1 redis-cli
  3. info
  4. set user:123 token123abc ex 3600
  5. get user:123
  6. ttl user:123
  7. set user:124 token124abc
  8. expire user:124 3600
  9. ttl user:124
  10. exit

Creating your own app image

  1. Create hello.js
console.log('Hello world!')
  1. node hello.js
  2. Create Dockerfile
FROM node:alpine
COPY ./hello.js /
CMD [ "node", "hello.js" ]
  1. Build your image : docker build . -t node-hello
  2. Running container : docker run --name hello-container1 -d node-hello
  3. See container log : docker logs hello-container1
  4. Remove container : docker rm hello-container1
  5. Remove image : docker image rm node-hello

Dockerizing Node.js Web App

Follow this tutorial

Docker common commands

  1. Docker process list : docker ps -a
  2. Starting container : docker start <name/ID>
  3. Stopping container : docker stop <name/ID>
  4. Removing container : docker rm <name/ID>
  5. List docker images : docker images
  6. Removing image : docker image rm <image id>
  7. Copy files from container to host : docker cp <container name>:/ .

About


Languages

Language:JavaScript 62.9%Language:Dockerfile 37.1%