jwh5566
2018-02-15
docker
$ curl -sSL https://get.docker.com/ | sh
$ sudo systemctl start docker
检测 $ docker version
安装docker-machine
curl -L "https://github.com/docker/machine/releases/download/v0.11.0/docker-machine-$(uname -s)-$(uname -m)" -o /tmp/docker-machine
$ chmod +x /tmp/docker-machine
$ sudo mv /tmp/docker-machine /usr/local/bin/docker-machine
安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.13.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-machine
检测
样例dockerfile:
FROM alpine:latest
LABEL maintainer="Russ McKendrick <[email protected]>"
LABEL description="This example Dockerfile installs NGINX."
RUN apk add --update nginx && \
rm -rf /var/cache/apk/* && \
mkdir -p /tmp/nginx/
COPY files/nginx.conf /etc/nginx/nginx.conf
COPY files/default.conf /etc/nginx/conf.d/default.conf
告诉docker想使用哪个基础镜像
为镜像添加额外信息(版本号,作者等等) 查看容器的label信息
$ docker image inspect <IMAGE_ID>
使镜像安装软件,脚本和命令,创建镜像时执行,可以写多条
copy复制宿主机文件到容器 add 会上传文件并且自动解压到当前目录
暴露系统端口和协议,不是映射宿主机端口
允许容器运行时执行,只能写一条 CMD在运行时会被command覆盖, ENTRYPOINT不会被运行时的command覆盖 例如 :
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
--entrypoint="" Overwrite the default entrypoint of the image
docker run postgres:9.3.5 psql
这里的psql就是command, 将覆盖Dockerfile的CMD, 但是不会覆盖ENTRYPOINT
指定执行命令的用户(可以在run cmd endpoint中使用),必须存在此用户,否则镜像build失败
切换工作目录
当当前镜像作为其他容器的基础镜像的时候,会执行此命令
在镜像中设置环境变量(不管在build还是在excuted的时候)