一、安装与配置
安装:
# Centos7
yum install docker
启动 & 设为开机启动:
systemctl start docker.service
systemctl enable docker.service
镜像源配置:
# vi /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com"
  ]
}
二、常用命令
pull
- docker pull <image-name>:拉取镜像
- docker pull <image-name>:<version>:指定版本
- docker pull <docker-hub-path>/<image-name>:拉取私有镜像
- docker pull -a <image-name>:拉取所有可用标签版本
images
- docker images:列出所有镜像
- docker images <image-name>:列出指定名称的镜像
rmi
- docker rmi <image-name>(:<version>):按名称删除镜像
- docker rmi <image-id>:按id删除镜像
- -f:强制删除
- -a:删除所有
ps
- docker ps:查看正在运行的容器
- docker ps -a:查看所有
容器状态:
- docker start <container-name>/<container-id>:启动容器
- docker stop <container-name>/<container-id>:停止容器
- docker restart <container-name>/<container-id>:重启容器
- docker attach <container-name>/<container-id>:进入已启动容器
rm:
- docker rm <container-name>/<container-id>:删除单个容器
- -f:强制删除
run:
- docker run <image-name> <command>:启动容器镜像并指定指令
- -d:后台启动
- --name <container-name>:为容器指定一个名称
- -p <host-port>:<container-port>:端口映射
- -v <host-path>:<container-path>:文件或目录挂载
- -e <key=value>:设置环境变量
build
- git build [Options] <path>:构建镜像
- -t <image-name>:<tag>:指定名称和标签
- -f <dockerfile>/- --file <dockerfile>:指定Dockerfile的路径
- --no-cache:禁用缓存,强制重新构建镜像
exec:
- docker exec <container-name> <command>:在容器内部执行命令,无论容器是否运行
三、Dockerfile
FROM:基础镜像信息
- 第一行
- FROM <image>
- FROM <image>:<tag>
RUN:构建中执行
- RUN <command>
- RUN ["executable", "param1", "param2"]
COPY:复制文件
- COPY <src> <target>
- COPY ["src1", "src2", ..., "target"]- 目标路径可以是容器内的绝对路径,也可以是相对于工作目录(WORKDIR)的相对路径
 
ADD:更高级的文件复制
- src可以为URL
ENV:环境变量
- ENV <key> <value>
- ENV <key1>=<value1> <key2>=<value2>
EXPOSE:暴露端口
- EXPOSE <port> [<port> ...]
VOLUME:创建挂载点
- VOLUME ["/data"]
- 声明而非创建数据卷,要使用需要在启动时加-v挂载
WORKDIR:指定工作目录
- WORKDIR 
- 设置后,其后Dockerfile命令都在该工作目录下执行
USER:指定运行镜像所使用的用户
- USER name
- USER <user>:<group>
CMD:容器启动时执行
- CMD ["executable", "param1", "param2"]
- CMD ["param1", "param2"]:与ENTRYPOINT组合使用
- CMD <command> <param1> <param2>
ENTRYPOINT:设置创建容器时的默认程序
- ENTRYPOINT ["executable", "param1", "param2"]
- ENTRYPOINT 
- docker run运行时的参数会被传给ENTRYPOINT,覆盖CMD命令指定的参数
LABEL:镜像元数据
- LABEL <key>=<value> <key>=<value>
- 可通过docker inspect <image-name>查看
ARG:指定构建运行时的变量
- ARG <name>(=<default-value>)
- 构建时通过--build-arg指定变量值
ONBUILD:设置镜像触发器
- ONBUILD <Dockerfile-CMD> <ARG>
- 作为其他镜像的基础镜像时触发
STOPSIGNAL:停止容器所要发送的系统调用信号
SHELL:设置执行命令所使用的默认shell类型
MAINTAINER:维护者信息
- MAINTAINER <name> <email>
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号