-p 指定docker對外port
-d docker container程式在背景執行
-v 透過本機資料夾分享到docker Container內或是指定Container資料夾儲存到本機路徑
-t 選項讓Docker分配一個虛擬終端(pseudo-tty)並綁定到容器的標準輸入上
-i 則讓容器的標準輸入保持打開
-f 執行Container內部的檔案
--name 給定一個container名稱
--link 連接另一個container
--dns 讓docker 使用指定的dns伺服器
--change 指定將CMD執行的程式換成你要執行的程式
-f 強制刪除
--rm 在執行container完成或是設定完成後輸入exit跳出將會自動刪除建立container
docker run -it -p 9200:9200
docker run -it -v /root/data:/container/data
docker commit --change "CMD 指定要執行程式" contrain名稱 新的contrain名稱
需要先將docker linux更新後才可以安裝vim套件
apt-get update
apt-get install vim
docker attach <container-id> 透過attach指令 重覆連入 container
docker commit copy一份Container完成的設定
docker even 指定Container內部執行程式
docker images show出現有的images檔案
docker stop 停止現有的Container
docker inspect 查看Container所以的硬體設備資訊
docker pull 從docker Server Get下來一個images
docker push 上傳到docker Server 一個images檔
docker rmi 刪除一個docker images檔案
docker search 搜尋Docker Server上的檔案
docker run 執行一個新的Container
docker unpause 將一個Container所有的程式從暫停狀態中恢復為起動
docker import 匯入一個tar的images
docker export 匯出一個tar檔案
docker save 保存一個images檔案為tar
docker tag 將images需要上傳到Docker hub更名成Docker hub線上名稱
docker load 使用save所建立出來的tar檔案,匯入到docker裡面
docker kill 刪除正在run container
docker loing 登入container
docker logout 登出container
docker logs 查看container執行logs
docker build 透過自已編寫的Dockerfile重新編輯一個images檔
docker -ps -a 現在有多少個在start或是stop的Container
docker --rm 刪除現有的Container
docker commit container的ID 新的Container名稱:TAG版本
docker save -o busybox.tar busybox 透過save將busybox container匯出成 busybos.tar檔案,匯入可以使用load
docker load --input fedora.tar 使用load將匯出的tar檔重新匯入到docker images內
Elasticsearch images為範例
檔案可以使用Docker hub
docker pull neiltw/elasticsearch-master-plugin-head-marvel
執行ES 同時開起 9200及9300 port,並將elasticsearch data檔案儲存在本機端。
docker run -d -p 9200:9200 -p 9300:9300 -v /root/docker/data/elasticsearch:/usr/share/elasticsearch/data --name <images-name> elasticsearch
利用docker exec直接在container指令安裝elasticsearch-head套件
docker exec <container-name> /usr/share/elasticsearch/bin/plugin -install mobz/elasticsearch-head
將本機logstash的config資料夾匯入到docker Container的config/資料夾內 -f為執行Container內部的config/資料夾
docker run --name logstash -it --rm -v /Users/Neil/docker/config:/config logstash logstash -f /config/logstash.conf
如果已經有images輸入這段是在私有雲先建立registry_data,myfirstimages名稱 上傳到私有雲
docker tag <images-name> localhost:5000/myfirstimage
上傳到私有雲的Docker registry
docker push localhost:5000/myfirstimage
將私有雲的registry檔案保存在本機,執行時請先輸入以下指令 docker-registry images路徑 /tmp/registry
docker run -d -p 5000:5000 -v /root/data:/tmp/registry registry
使用Docker build重新建立一個設定完成的container,並重新命名images檔案
docker build -t elasticsearch:v2 .
-t 為Repository name
elasticsearch:v2 | elasticsearch為Repository名稱 v2為tag . 為找尋本路徑是否有Dockerfile檔案
docker logs -f --tail=all <container-id>
需要先在Docker hub 新增一個Repository名稱,在將現有要上傳的images檔案修改名字。
docker tag images名稱 Docker hub Repository帳號/名稱
docker push 修改完成的images名稱 例如 neiltw/ealsticsearch-head
-h是先將container:/etc/hosts給定名稱。
docker run -it -h cookbook ubuntu:14.04 bash
$ ifconfig
eth0
Link encap:Ethernet HWaddr e2:4c:0a:6a:a6:ee
inet addr:172.17.0.4 Bcast:0.0.0.0 Mask:255.255.0.0
開起另一個boot2Docker終端機
使用docker ps -a 查看現有的container名稱
CONTAINER ID | IMAGE | COMMAND | ... | NAME |
---|---|---|---|---|
cc7f72826c36 | ubuntu:14.04 | "bash" | ... | cocky_galileo |
找到container名稱後輸入以下指令將會login原本的container內,IP位址不會變動
--net=container:不變,cocky_galileo將是你原來所建立的container名稱
docker run -ti --net=container:cocky_galileo ubuntu:14.04 bash
每次查看Container是非常麻煩的是 DockerUI將可以解決每次使用指令來觀看
docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui