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
示例: