Contents

Docker 新手筆記

買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
2
# 其中 python_flask 是 container 名稱
$ docker cp python_flask:/flask/app.py .

當然也可以把 host 資料放進 container 中:

1
2
3
4
5
6
7
$ touch file_in_host

$ docker cp file_in_host python_flask:/flask

$ docker exec python_flask ls /flask
app.py
file_in_host

參考來源:https://godleon.github.io/blog/2015/11/27/Docker-Getting-Start-With-Dockerfile

Data Volumes

以資料夾作為volume

1
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
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
docker container run  ls -l

docker container run -it xxx /bin/bash

docker container ls

docker container ls -a

docker image pull xxx


apt-get update -qq

Is there a difference between “docker ps” and “docker container ls”? - Stack Overflow

差別
Docker 1.13 管理命令 - DockOne.io

PAM-範例 – Benjr.tw

/var/run是做什麼用
即将消逝的目录 /var/run