docker 常用命令 手撕dockerfile docker-compose
docker认识与安装
Docker 常用命令
以下是一些基本的 Docker 命令,用于管理镜像和容器:
docker pull <image>
: 从 Docker Hub 或其他 Docker 镜像仓库下载一个镜像。docker build -t <tag> .
: 使用当前目录的 Dockerfile 构建镜像,并给新镜像打标签。docker images
: 列出本地所有的 Docker 镜像。docker run <options> <image>
: 运行一个 Docker 容器。常见的选项有-d
(后台运行),-p
(端口映射),-e
(设置环境变量),--name
(指定容器名) 等。docker ps
: 列出当前正在运行的容器。使用-a
选项可以查看所有容器(包括停止的)。docker stop <container>
: 停止一个运行中的容器。docker rm <container>
: 删除一个容器。docker rmi <image>
: 删除一个镜像。docker logs <container>
: 查看容器的日志输出。docker exec -it <container> <command>
: 在运行的容器中执行命令,常用于进入容器。
Dockerfile 语法要点
Dockerfile 是一个文本文件,其中包含了一系列命令和参数,用于自动构建 Docker 镜像。以下是一些基本的指令:
FROM <image>
: 指定基础镜像。RUN <command>
: 在镜像构建过程中运行的命令。CMD ["executable","param1","param2"]
: 指定容器启动时执行的命令。每个 Dockerfile 只能有一个 CMD 指令。EXPOSE <port>
: 声明容器运行时监听的端口。ENV <key> <value>
: 设置环境变量。COPY <src> <dest>
: 将宿主机的文件复制到镜像中。ADD <src> <dest>
: 类似于 COPY,但是如果 src 是一个压缩文件的 URL 或者压缩文件,ADD 会自动解压。WORKDIR <path>
: 设置工作目录。ENTRYPOINT ["executable","param1","param2"]
: 配置容器启动时执行的程序,允许该程序作为主程序接收参数。
Docker Compose 语法要点
Docker Compose 使用 YAML 文件定义多容器应用。以下是一个基础的 docker-compose.yml
文件例子:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
depends_on:
- app
app:
build:
context: .
dockerfile: Dockerfile-app
environment:
- DEBUG=1
这部分主要参数如下:
version
: 定义使用的 Docker Compose API 版本。services
: 定义所需要的服务容器。image
: 指定服务使用的镜像。build
: 指定如何构建镜像。ports
: 容器与宿主机之间的端口映射。depends_on
: 定义容器间的依赖关系。environment
: 设置环境变量。
编译和区别
-
编译:
docker build
: 通过 Dockerfile 创建 Docker 镜像。docker-compose up
: 使用 Docker Compose 文件启动或重建服务。
-
区别:
- Dockerfile 用来定义单个容器的配置,包括从哪里获取基础镜像、如何建立环境、如何复制代码等。
- Docker Compose 旨在定义和协调多个容器之间的工作,如微服务架构中的不同服务。它使用 YAML 文件来配置相应的服务、网络和卷。
希望这些信息对你理解和使用 Docker 有所帮助。