Docker常用命令

Dockerfile文件编写

语法基本介绍

注释、命令、参数

命令

  • FROM

    指定基于哪个基础镜像。

  • MAINTAINER

    作者信息。

  • RUN

    操作指令。

  • CMD

    指定容器启动时用到的命令。

  • EXPOSE

    暴露端口

  • ENV

    定义环境变量。

  • ADD

    可以将本地文件或目录添加到容器中。也可以通过url指定文件

  • COPY

    类似ADD,但不支持URL

  • VOLUME

    指定挂载点。

  • USER

    指定运行容器的用户。

  • WORKDIR

    指定命令的工作目录

  • ENTRYPOINT

    指定容器启动时要执行的命令,且不能被docker run覆盖。

示例

Python项目运行环境构建

# 拉去python3.10的基础镜像
FROM python:3.10

# 将requirements.txt添加到容器中
ADD requirements.txt /env

# 指定工作目录为requirements.txt所在目录
WORKDIR /env

# 运行命令安装环境
RUN pip install -r requirements.txt

docker常用命令

构建镜像

在Dockerfile所在目录

docker build -t <IMAGE_NAME>:<TAG> .

导出镜像

按镜像名称及标签导出

docker save -o <TARFILE> <IMAGE_NAME>:<TAG>

按镜像ID导出

docker save -o <TARFILE> <IMAGE_ID>

导入镜像

docker load -i <IMAGE_NAME_TAR_PATH>

查看镜像

  • 列举所有镜像

    docker image ls
    

删除镜像

docker rmi <IMAGE_ID>

重命名镜像

docker tag <IMAGE_ID> <NEW_IMAGE_NANE>:<NEW_IMAGE_TAG> 

查看容器

  • 查看运行中的容器

    docker ps
    
  • 查看单个容器详细信息

    docker inspect <IMAGE_ID>###  
    
  • 查看所有容器

    docker ps -a
    
  • 查看容器日志

    docker logs -n <LINE> <CONTAINER_ID>
    

拉取远程镜像

docker pull <IMAGE_NAME>:<TAG>

docker-compose.yml文件

基本介绍

Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用场景为需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务前后端容器本身,可能还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。

基本命令

version: '3'
services:

  web:
    build: .
    ports:
     - "5000:5000"
    depends_on:
     - redis

  redis:
    image: "redis:alpine"
  • build: 指定 Dockerfile 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。 Compose 将会利用它自动构建这个镜像,然后使用这个镜像。

  • command: 覆盖容器启动后默认执行的命令。

  • container_name: 指定容器名称。默认将会使用 项目名称_服务名称_序号 这样的格式。

  • depends_on: 解决容器的依赖、启动先后的问题。

  • expose: 暴露端口,但不映射到宿主机,只被连接的服务访问。

  • image: 指定为镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉取这个镜像。

  • ports: 暴露端口信息。

    使用宿主端口:容器端口 (HOST:CONTAINER) 格式,或者仅仅指定容器的端口(宿主将会随机选择端口)都可以。

docker-compose常用命令

可用参数

  • -f, –file FILE 指定使用的compose文件,默认为docker-compose.yml文件

  • -p, –project-name NAME 指定项目名称

  • –verbose 输出调试信息

  • -v 打印版本

启动容器

docker-compose up

后台启动

docker-compose up -d

重启容器

docker-compose restart

删除容器

docker-compose rm

注:Mac系统最新docker的compose命令用法为:

docker compose 

示例:

拓展阅读

CoolCats
CoolCats
理学学士

我的研究兴趣是时空数据分析、知识图谱、自然语言处理与服务端开发