快速了解docker命令
docker run
docker run 用于从镜像创建一个新的容器,并运行一个命令
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
常用操作
操作 | 说明 | 示例 |
---|---|---|
-d | 后台运行容器,并返回容器id | docker run -d ubuntu |
-t | 为容器分配一个伪输入终端,通常与i一同使用 | docker run -ti ubuntu |
-i | 以交互模式运行容器,通常与t一同使用 | docker run -ti ubuntu |
–name | 为容器指定一个名字 | docker run --name test ubuntu |
–net | 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型 | docker run --net host ubuntu |
-v | 数据卷映射 | docker run -v /home/dev/saas-web:/root ubuntu |
-e | 设置环境变量 | docker run -e APP=app.jar ubuntu |
-p | 端口映射 | docker run -p 8085:80 ubuntu |
docker build
Usage: docker build [OPTIONS] PATH | URL | -
常用操作
操作 | 说明 | 示例 |
---|---|---|
-f | 指定dockerfile的位置 | docker build -f /root/dev/dockerfile/test/Dockerfile . |
-t | 设置镜像的tag | docker build -t xxx/ss:v1 . |
Dockerfile认识
Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像.既然Dockerfile是一个脚本,那就有Dockerfile脚本语法.
Dockerfile语法由两部分构成,注释和命令行+参数
- #这是注释,下面是命令行
- command argument argument …
下面是命令行的介绍
- FROM 该命令是Dockerfile是开始,用来定义使用哪个镜像作为基础镜像来启动构建流程.因此FROM必须是Dockerfile的第一个命令.
FROM <IMAGE>:<tag>
- MAINTAINER 该命令用于声明作者,可以放在Dockerfile的任意位置,建议放在FROM之后.
- RUN 该命令用于指定当前镜像中运行的指令.每一个RUN指令会在原先镜像上生成新一层的镜像
- EXPOSE 该命令用于声明容器会使用的端口,但并不会自动映射端口.想要打开端口映射,须在docker run 的时候使用-p来打开端口映射
- CMD 该命令用于指定容器运行时的指令.
- ENTRYPOINT 该命令同样用于指定容器运行时的指令.下面对RUM,CMD,ENTRYPOINT做个比较
RUN | CMD | ENTRYPOINT | |
---|---|---|---|
执行时间 | 镜像构建的过程中执行 | 镜像运行时执行 | 镜像运行时执行 |
run时是否会覆盖 | 因为执行在构建期间,肯定不会覆盖啦 | 运行时会被docker run 中的command覆盖 | 运行时不会被docker run 中的command覆盖 |
Dockerfile中出现次数 | 可以多次出现,但每个命令会生成新的镜像层 | 只能出现一次,如果有多个CMD命令,只有最后一个生效 | 只能出现一次,如果有多个ENTRYPOINT命令,只有最后一个生效 |
- ADD 用于从宿主机或远程url复制文件到容器中,而且还可以自动解压文件.docker不推荐使用ADD从远程获取文件可以使用curl或wget等下载文件再使用
- COPY 用与从宿主机复制文件到容器.如果只是单纯的复制文件,推荐使用该命令.
- WORKDIR 用于为后续的指令指定工作目录
- ENV 用于设置环境变量