學習Docker
@(存筆記)
[TOC]
For Win
官方建議使用 Docker Machines 的實現(xiàn)童叠。
常用命令
docker images # 列出所有鏡像
docker ps # 列出運行的容器
docker ps -a # 列出所有容器
docker run --name test ubuntu # 將名為 ubuntu 的鏡像啟動生成容器追城,run命令的參數(shù)要在鏡像名 ubuntu 之前
docker run -d ubuntu # 將名為 ubuntu 的鏡像啟動生成容器赔桌,并將改進程掛到后臺運行
docker rm $(docker ps -q -a) # 一次性刪除所有的已停止的容器锻弓,
docker rmi $(docker images -q) # 一次性刪除所有的鏡像
docker commit <CONTAINER ID> newimage # 將一個容器提交生成一個新的容器
docker images |grep none |awk '{print $3}'|xargs docker rmi # 刪除所有None鏡像
docker rmi $(docker images -q -f dangling=true) # 刪除虛懸鏡像<none>
Dockerfile語法
構(gòu)建鏡像時,是Docker的客戶端(本機環(huán)境)給服務(wù)器端(Docker引擎犹赖,可以是在本機——通常開發(fā)時是在本機试浙,也可以是遠程主機)要指定一個上下文目錄董瞻,可以理解為指定了一個本地的目錄供服務(wù)器端操作。服務(wù)器端僅能操作該目錄及其子目錄田巴。這就是為什么
COPY ../path/code /var/code
和COPY /srv/path/code /srv/code
會提示其路徑無效钠糊。COPY ./code /var/code
意為指定了上下文目錄下的/code
目錄夾映射到鏡像的/var/code
目錄,而不能通過COPY ../code /var/code
指定上級目錄壹哺。因為上級目錄已經(jīng)不屬于上下文目錄的控制范圍抄伍。
COPY
FROM python:3.5 # 使用python:3.5作為基礎(chǔ)鏡像
COPY ./code /var/code # 將上級目錄映射到鏡像內(nèi)路徑
WORKDIR /var # 之前默認的工作目錄是 /,在這命令之后是 /var
ENV ["python", "./code/foo.py"] # 容器啟動后默認執(zhí)行的命令
構(gòu)建鏡像
基本的構(gòu)建命令
docker build -t account/easyctp:tag .
當Dockerfile就在當前目錄時管宵,直接指定Dockerfile所在路徑.
截珍。
在調(diào)試時,如果構(gòu)建鏡像有問題箩朴,嘗試使用--no-cache
無緩存模式調(diào)試岗喉。
交互模式
注意參數(shù)的順序
docker run --rm -it ubuntu /bin/bash
采用交互模式-it
進入ubuntu
之后,啟動/bin/bash
作為交互工具炸庞。
啟動參數(shù)
映射卷時钱床,通常需要指定當前目錄。不能直接使用.
埠居,而是要使用$PWD
查牌。并且注意要使用大寫
docker run -v $PWD:/var/code ubuntu