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 有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值