docker 命令学习

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 会报 已经有一个 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 :
指定基本镜像
    FROM 
    FROM :
    FROM :
ENV abc=hello
指定环境变量

ENV abc=hello
ENV abc=bye def=$abc
ENV ghi=$abc

abc = bye, def = hello, ghi = bye
RUN
 images build 时用的指令,在old image 基础上构建new image,通常用来 更新系统,安装软件等

RUN apt-get update && apt-get install -y \
bzr
cvs
git
mercurial
subversion

CMD
docker start 后的命令,如果有多条,只有最后一条被执行,可以被 docker run 的 command 覆盖
ENTRYPOINT
 docker start 后的命令, shell 模式会覆盖任意的 cmd, docker run comand, exec 模式可以配合 CMD 附加的那种模式进行 默认参数设定
exec, shell 模式区别
exec:  ["executable", "param1", "param2", ...] 
       直接执行二进制文件,不会打开shell,所以环境变量得不到
shell :  
       会从 shell中执行,可以得到环境变量
addition:  ENTRYPOINT 和 RUN 都只有 exec, shell 两种模式, 
           cmd有另外一种附加模式,可以用来配合 ENTRYPOINT 的
           exec模式进行有默认参数的设定
LABEL
LABEL multi.label1="value1" multi.label2="value2" other="value3"

可使用docker inspect 查看,管理工具可通过label对container进行管理
MAINTAINER
不推荐使用,推荐使用 label 代替
LABEL maintainer "[email protected]"
EXPOSE
对外暴露端口,可使用 -p 参数, network 等功能代替
ENV
设置环境变量
ADD
two forms
. ADD src dst
. ADD ["src", "dst"] (this form is required for paths containing whitespace)

 支持 *  ? 等match模式, dst / 绝对路径, xx/ 相对路径,相对于workdir 
COPY
. COPY ... 
. COPY ["",... ""] (this form is required for paths containing whitespace)

add 相对于copy 多2点功能
1. ADD 的可以为URL
2. ADD 到container的tar文件会被自动解压,并删除原tar文件。
VOLUME
目录挂载,可使用-v参数,docker-compose 配置 等方式代替
WORKDIR
指定工作目录
USER
设定容器 用户 uid 等

network

docker network ls
查看网络
docker network inspect bridge
 查看 使用 bridge 网络的容器
docker inspect --format='{{json .NetworkSettings.Networks}}' db
查看 db 容器的网络情况
docker network create -d bridge my-bridge-network
 使用 bridge 创建一个新的网络 my-bridge-network
docker run -d --net=my-bridge-network --name db training/postgres

--net 指定使用那个网络

docker network connect my-bridge-network web
web 容器加入 my-bridge-network 网络

你可能感兴趣的:(docker 命令学习)