買Docker 入門與實戰,當然要記一下筆記…
以後開發盡量用Docker做:P
1 | docker run -it --name linux1 ubuntu |
會執行會開linux bash
加個-d
就會背景執行
1 | docker run -itd --name linux1 ubuntu |
要進入shell裡面1
docker exec -it linux1 /bin/bash
當然,大家也可以試試看,如果沒有加 -it ,基本上,只 run 一下,馬上就跳回來了 XDD
那 -it 是甚麼意思呢,根據官方文件如下。
-i : Keep STDIN open even if not attached
-t : Allocate a pseudo-tty
Docker - Docker for Windows 10 入門篇 | 天空的垃圾場
要進入前先確定你的docker container是否有運行,才能進去
1 | docker ps |
查看運行中的container
(新手常忘XD)查全部的container [運行+沒運行]1
docker ps -a
玩了這麼多,要刪掉那麼多測試的container
有什麼辦法呢XD
後來有找到1
2
3
4
5
6
7
8
9
10
11
12####################################
## 小技巧 ##########################
####################################
# 停止所有的 containers
$ docker stop $(docker ps -a -q)
# 刪除所有的 containers
$ docker rm $(docker ps -a -q)
# 刪除所有的 images
$ docker rmi $(docker images -a -q)
參考來源:【Day 3】 - Docker 基本指令操作 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
host 與 container 互傳資料
這部分其實跟上面的 Dockerfile 沒甚麼關係,只是剛好可以一併提到,若是建立 container 時沒有使用 -v 參數掛載 host 目錄,還是可以用以下的命令可以將資料從 container 中複製出來:
1 | # 其中 python_flask 是 container 名稱 |
當然也可以把 host 資料放進 container 中:
1 | $ touch file_in_host |
參考來源:https://godleon.github.io/blog/2015/11/27/Docker-Getting-Start-With-Dockerfile
Data Volumes
以資料夾作為volume1
docker run -d -P --name web -v /src/webapp:/opt/webapp traning/webapp python app.py
Data Volume Containers
建立一個資料卷容器,掛載在容器裡面1
docker run -it -v /dbdata --name dbdata ubuntu
--rm
跑完container會刪除
聽說container關了,裡面資料會不見
但是我…stop,再打開都還有東西
後來找到這篇要rm才會沒有東西XD
兩個dash,是什麼意思Google一下有找到解答
linux shell环境减号”-“的用途 | 等闲之辈莫等闲
1 | docker container run ls -l |
Is there a difference between “docker ps” and “docker container ls”? - Stack Overflow
差別
Docker 1.13 管理命令 - DockOne.io
/var/run是做什麼用
即将消逝的目录 /var/run