sudo usermod -a -G docker ubuntu
解決每次docker命令都需要sudo的問題
docker run hello-world
運行 hello-world 鏡像
docker ps
docker ps 顯示正在運行的鏡像左冬, docker ps -a 顯示所有的鏡像
docker images
查看本地有哪些鏡像
docker images rm -f id
刪除本地鏡像
docker tag id repository:tag
修改 repository 和 tag
docker built -t repository:tag .
build docker file
docker run test
run test 鏡像玄括,停止后(ctrl-c, docker stop),在此docker run test 會報 已經(jīng)有一個 test container的錯誤船老,可以使用 docker start test, 如果想 docker run test, 可以先 docker rm -f test 刪除容器就可以了
docker stop test
啟動一個容器
docker start test
啟動 stop 的容器, 未run的容器 無法start
docker rm -f test
刪除容器 test
docker stop `docker ps -qa`
停止所有容器
docker rm `docker ps -qa`
刪除所有 stop 的image
docker images | grep none | xargs docker image rm
刪除 所有 none images
docker logs likun_vp0_1 -f
查看指定容器的日志
DOCKER FILE 指令
FROM <image>:<tag>
指定基本鏡像
FROM <image>
FROM <image>:<tag>
FROM <image>:<digest>
ENV abc=hello
指定環(huán)境變量
ENV abc=hello
ENV abc=bye def=$abc
ENV ghi=$abc
abc = bye, def = hello, ghi = bye
RUN
images build 時用的指令,在old image 基礎上構(gòu)建new image圃酵,通常用來 更新系統(tǒng)柳畔,安裝軟件等
RUN apt-get update && apt-get install -y \
bzr
cvs
git
mercurial
subversion
CMD
docker start 后的命令,如果有多條郭赐,只有最后一條被執(zhí)行薪韩,可以被 docker run 的 command 覆蓋
ENTRYPOINT
docker start 后的命令, shell 模式會覆蓋任意的 cmd确沸, docker run comand, exec 模式可以配合 CMD 附加的那種模式進行 默認參數(shù)設定
exec, shell 模式區(qū)別
exec: <instruction> ["executable", "param1", "param2", ...]
直接執(zhí)行二進制文件俘陷,不會打開shell罗捎,所以環(huán)境變量得不到
shell : <instruction> <command>
會從 shell中執(zhí)行,可以得到環(huán)境變量
addition: ENTRYPOINT 和 RUN 都只有 exec, shell 兩種模式拉盾,
cmd有另外一種附加模式桨菜,可以用來配合 ENTRYPOINT 的
exec模式進行有默認參數(shù)的設定
LABEL
LABEL multi.label1="value1" multi.label2="value2" other="value3"
可使用docker inspect 查看,管理工具可通過label對container進行管理
MAINTAINER
不推薦使用捉偏,推薦使用 label 代替
LABEL maintainer "SvenDowideit@home.org.au"
EXPOSE
對外暴露端口倒得,可使用 -p 參數(shù), network 等功能代替
ENV
設置環(huán)境變量
ADD
two forms
. ADD src dst
. ADD ["src", "dst"] (this form is required for paths containing whitespace)
支持 * ? 等match模式夭禽, dst / 絕對路徑霞掺, xx/ 相對路徑,相對于workdir
COPY
. COPY <src>... <dest>
. COPY ["<src>",... "<dest>"] (this form is required for paths containing whitespace)
add 相對于copy 多2點功能
1. ADD 的<src>可以為URL
2. ADD 到container的tar文件會被自動解壓讹躯,并刪除原tar文件菩彬。
VOLUME
目錄掛載,可使用-v參數(shù)潮梯,docker-compose 配置 等方式代替
WORKDIR
指定工作目錄
USER
設定容器 用戶 uid 等
network
docker network ls
查看網(wǎng)絡
docker network inspect bridge
查看 使用 bridge 網(wǎng)絡的容器
docker inspect --format='{{json .NetworkSettings.Networks}}' db
查看 db 容器的網(wǎng)絡情況
docker network create -d bridge my-bridge-network
使用 bridge 創(chuàng)建一個新的網(wǎng)絡 my-bridge-network
docker run -d --net=my-bridge-network --name db training/postgres
--net 指定使用那個網(wǎng)絡
docker network connect my-bridge-network web
web 容器加入 my-bridge-network 網(wǎng)絡