Docker 基础使用指南
docker 基础知识汇总,以及常见操作
配置源
{ "registry-mirrors": [ "https://registry.docker-cn.com" ] }
dockerfile
ADD [--chown=<user>:<group>] <源路径>... <目标路径>
例如:dockerfile 中: CMD service nginx start 是起不到预期(真机中一样的)作用的。 使用 service nginx start 命令,则是希望 upstart 来以后台守护进程形式启动 nginx 服务。然而实际执行的是:CMD [ "sh", "-c", "service nginx start"],因此主进程实际上是 sh。那么当 service nginx start 命令结束后,sh 作为主进程退出了,容器自然就退出。 正确的做法是直接执行 nginx 可执行文件,并且要求以前台形式运行。比如:CMD ["nginx", "-g", "daemon off;"]
ENV <key> <value> ENV <key1>=<value1> <key2>=<value2>...
VOLUME ["<路径1>", "<路径2>"...] VOLUME <路径>将宿主的 /tmp/data 映射到容器的 /data docker run -d -v /tmp/data:/data xxxx
expose: - "3000" # 在启动容器时通过-P(注意是大写),Docker主机会自动分配一个端口转发到指定的3000端口 # 或者,使用 -p 则可以具体指定哪个本地端口映射过来。
ports: - "8000:80" # 绑定容器的80端口到主机的8000端口 - "443" # 绑定容器的443端口到主机的任意端口,容器启动时随机分配绑定的主机端口号HEALTHCHECK [选项] CMD <命令>:设置检查容器健康状况的命令 HEALTHCHECK NONE:如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令 HEALTHCHECK 支持下列选项: --interval=<间隔>:两次健康检查的间隔,默认为 30 秒; --timeout=<时长>:健康检查命令运行超时时间,如果超过这个时间,本次健康检查就被视为失败,默认 30 秒; --retries=<次数>:当连续失败指定次数后,则将容器状态视为 unhealthy,默认 3 次。
数据管理
数据卷
Docker 三剑客
Docker Compose
Docker 底层实现
operations
容器
Last updated