---
# System prepended metadata

title: 第6章 建立與使用 docker container
tags: [port, command, nginx, docker, '2021', container]

---

# 第6章 建立與使用 docker container 

# 概念

conainer 沒有一個程序一直跑著的話，它會把自己清除掉

# 常用指令


列出所有 container (有在跑的)
```
docker container ls  
```


抓 image
```
docker pull imageName 
```

列出所有 image
```
docker images 
```

跑 alpine 並且給它一個 c001 名稱且執行 alpine 的 ls 指令在 / (根目錄)
```
docker container run --name c001 alpine(image) ls / 
```


container 跑 image 
```
docker run xxx = docker container run xxx
```

container 程序當沒有一個一直跑著時它會把自己清掉(當 exit 離開 shell 之後也沒事做，所以它會把自己給清掉)
```
docker run --it(interactive mode) --name c003 alpine /bin/sh 
```

給 -d 這樣會在背景跑且使用 alpine 指令 tail -f 讓它一直追蹤 /dev/null 這個 file，這樣就不會被清掉
```
docker run -d(deamon 背景程序) --name c004 alpine tail -f(追蹤某個 file log並印盪console 上) /dev/null
```

進去執行中的 container 並且執行 /bin/sh 
```
docker exec -it container_name /bin/sh 
```

在背景跑 nginx 並且指定 port
```
docker run -d -p 8081(外部 VM linux 的 port):80(container 裡面的 port) --name c006 nginx
```

拿到 VM linux 的主機IP
```
echo $(docker-machine ip)
```


停止 container
```
docker container stop container_id
```

列出所有 container 不管有沒有在跑
```
docker container ls -a
```

清除 container 
```
docker container rm container_id
```


###### tags: `2021`  `docker` `command` `container` `port` `nginx`


{%hackmd BJrTq20hE %}
