---
tags: Docker
---
# [1] Docker for newbie
What is Docker?
Docker is an open-source platform for building, deploying, and managing containerized applications.
- image
- container
---
dockerhub : a place of storing images
## Category
### Action
- docker pull / docker push / docker commit
- docker build : Build an image from a dockerfile. (Advance)
- docker run : Create a container (It can only run once.)
- docker exec : (If you have not created it before, you cannot use it.) Enter a container
- docker start / docker stop : Start a container, and stop a container
- docker rm / docker rmi
- docker cp
### Check status
- docker ps (Check the status of containers that is currently running) / docker ps -a (Check all containers)
- docker images (check all images) / docker image ls
- docker info
---
## Command
### 1. Docker pull
>The purpose is to pull the **image**.
```
docker pull (Account):(Tag & version)
```
Ex:
```
docker pull ubuntu:20.04
```
If you do not specify the version you wanna pull, then it will pull the tag of latest version by default.
### 2. Docker run
>The purpose is to create a container from an **image**.
The main framework:
```
docker run (options) (image name) (command)
```
For example:
```
docker run (options) ubuntu:20.04 bash
```
**Options:**
All of options should be put between `run` and `image name`.
- `-i -t` (i.g., `-it`) : `-i` represents "interactive" and `-t` is `--tty`.
- `--name` : give a name. (We cannot use the same name.)
- `--rm` : Won't store it after you leave a container.
- `-p` (port) (host):(container) 8080:8080
- `-v` (volume): Mount the folder (host folder absolute path):(container path)
- `-d` : background (The meaning of `-d` is "detach")
### 3. Docker exec (execute)
>The purpose is to enter an alive container. (or a running container)
```
docker exec (options) (container name) (command)
```
### 4. Docker commit
>The purpose is to commit a container be a version.
```
docker commit (container ID) (image name)
```
Ex:
```
docker commit chieh chiehpower:0.1
```
### 5. Docker tag
>The purpose is to change the image name.
### 6. Docker cp
>The purpose is to copy the files to your destination.
```
docker cp (target) (destination)
```
(container name):(path)
Ex:
- Copy the `test.py` file from "chieh" container to host (here).
```
docker cp chieh:/workspace/test.py .
```
- Copy the `test.py` file from host to the `/workspace/test.py` location of "chieh" container.
```
docker cp test.py chieh:/workspace/test.py
```
## Slide
- [Slide](https://docs.google.com/presentation/d/e/2PACX-1vQ1HcRWegNDMkDKT0hqQPLlglmx3CGf_upObi7jt7QuCvSELfJrZpgT1mR57Q7IC9efc766AMk5Mc-0/pub?start=false&loop=false&delayms=3000)
### how to push to dockerhub and docker tag rule