资料

Docker Dockerfile
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 这里仅讲解如何运行 Dockerfile 文件来定制一个镜像,具体 Dockerfile 文件内指令详解,将在下一节中介绍,这里你只要知道构建的流程即可。 1、下面以定制一个 nginx 镜像(构建好的镜像内会有一个 /usr/share/nginx/html/index.html 文件) 在一个空目录下,新建一个名为 Dockerfile 文件,并在文件内添加以下内容: FROM nginx RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html 2、FROM 和 RUN 指令的作用 FROM :定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。 RUN :用于执行后面跟着的命令行命令。有以下俩种格式: shell 格式: RUN # 等同于,在终端操作的 shell 命令。 exec 格式: RUN ["可执行文件", "参数1", "参数2"] # 例如: # RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline 注意 :Dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层,会造成镜像膨胀过大。例如: 以上执行会创建 3 层镜像。可简化为以下格式: 如上,以 && 符号连接命令,这样执行后,只会创建 1 层镜像。 在 Dockerfile 文件的存放目录下,执行构建动作。 以下示例,通过目录下的 Dockerfile 构建一个 nginx:v3(镜像名称:镜像标签)。 注 :最后的 .
Docker Dockerfile

常用命令

# 显示存储使用情况 docker system df # docker stats 显示内存占用情况

账号

# 登录 docker login -u busyhe

镜像

# 拉取容器 # docker pull NAME[:TAG|@DIGEST] docker pull # 列出所有镜像 docker images # 删除镜像 docker image rm id # 更改镜像名称 docker tag <old-name> <name-name> # 创建镜像 docker build -t <NAME> -f dockerfile docker.

容器

# 启动容器 docker run -dp 3000:3000 <镜像名称> # 显示正在运行的容器 docker ps # 显示运行和暂停的容器 docker ps -a # 显示磁盘使用情况 docker ps -s # 停止容器 docker stop <container-id> # 删除容器 docker rm <container-id> # 删除全部 docker rm $(docker ps -a -q) # 强制删除正在运行的容器 docker rm -f <container-id> # 显示日志,按照日志输出 docker logs -f <container-id> # 从日志末尾开始显示的行数 docker logs -n 1000 <container-id> # 显示时间戳 docker logs -t <container-id>

# 创建卷 docker volume create <volume-name> # 显示卷的详细信息 docker volume inspect <volume-name> # 显示卷列表 docker volume ls # 删除本地未使用的卷 docker volume prune # 删除卷 docker volume rm <volume-name>

network

docker network connect # 创建一个network docker network create docker network disconnect docker network inspect docker network ls docker network prune docker network rm

compose

docker compose up -d docker compose logs -f

bash

scan

 
docker build -t nextseason/fims -f Dockerfile.fims . docker save -o nextseason-fims.tar nextseason/fims docker load -i nextseason-fims.tar yarn workspace @fims/service tsc -b -v
@echo off cd C:\Users\Administrator\nextseason\nextseason-fims.deploy\ && docker compose -f docker-compose.prod.yml up -d --force-recreate --build && yarn workspace @fims/service debug --port=3456
 

日志

引擎日志

Docker 引擎日志一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (CentOS 7, Ubuntu 16.04)。前者一般位于/var/log/upstart/docker.log下,后者我们一般 通过 journalctl -u docker来进行查看。
系统
日志位置
Ubuntu(14.04)
/var/log/upstart/docker.log
Ubuntu(16.04)
journalctl -u docker.service
CentOS 7/RHEL 7/Fedora
journalctl -u docker.service
CoreOS
journalctl -u docker.service
OpenSuSE
journalctl -u docker.service
OSX
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌ocker.log
Debian GNU/Linux 7
/var/log/daemon.log
Debian GNU/Linux 8
journalctl -u docker.service
Boot2Docker
/var/log/docker.log

容器日志

查看系统当前设置的日志驱动
docker info --format '{{.LoggingDriver}}'
查看容器日志存放位置
docker inspect nextseason-service-ums | grep LogPath

常见问题

error pulling image configuration: download failed after attempts=6: EOF

关闭代理

com.docker.backend cannot start Exit code 152

notion image
rm -rf Library/Group\ Containers/group.com.docker rm -rf Library/Containers/com.docker.docker rm -rf Library/Application\ Support/Docker\ Desktop kill $(ps aux | grep 'docker' | awk '{print $2}')
 
badge