一、数据卷
数据卷是一个虚拟的目录,是容器内目录与宿主机目录之间的桥梁。
(一)数据卷相关命令
命令 | 含义 |
---|---|
docker volume create | 创建数据卷 |
docker volume ls | 查看所有的数据卷 |
docker volume rm | 删除指定的数据卷 |
docker volume inspect | 查看某个数据卷的详情 |
docker volume prune | 清除数据卷 |
注意:在创建容器时,数据卷会自动创建
(二)挂载本地目录或文件
如果数据卷的目录结构较深,我们操作数据卷不方便,很方情况下,会直接将容器目录与宿主机指定的目录挂载。
-v 本地目录:容器内目录
-v 本地文件:容器内文件
注意 :本地目录或文件必须要以/
或./
开头,如果以名字开头,会被识别为数据卷而非本地的目录名或文件名。
二、自定义镜像
镜像就是一堆文件的集合
(一)Docker语法
指令 | 含义 |
---|---|
FROM | 指定基础镜像 |
ENV | 设置环境变量 |
COPY | 复制本地文件到镜像的指定目录 |
RUN | 执行Linux的shell命令,一般是安装过程的命令 |
EXPOSE | 指定容器运行时监听的端口 |
ENTRYPOINT | 镜像中应用的启动命令,容器运行时调用 |
例:使用centos:7镜像构建一个java应用,Dockerfile文件:
PowerShell# 使用 CentOS 7 作为基础镜像 FROM centos:7 # 添加 JDK 到镜像中 COPY jdk17.tar.gz /usr/local/ RUN tar -xzf /usr/local/jdk17.tar.gz -C /usr/local/ && rm /usr/local/jdk17.tar.gz # 设置环境变量 ENV JAVA_HOME=/usr/local/jdk-17.0.10 ENV PATH=$JAVA_HOME/bin:$PATH # 创建应用目录 RUN mkdir -p /app WORKDIR /app # 复制应用 JAR 文件到容器 COPY app.jar app.jar # 暴露端口 EXPOSE 8080 # 运行命令 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/app.jar"]
(二)构建镜像
在Dockerfile文件编写好之后,通过下述的命令来构建镜像。
docker build -t 镜像名 .
注意:
-t
:是给镜像起名,格式是repository.tar格式,不指定默认为latest。.
:是指Dockerfile所在的目录
三、网络相关命令
- docker network create【网络名】 ------ 创建一个网络
- docker network ls ------ 查看所有网络
- docker network rm 【网络名】------ 删除指定的网络
- docker network prune ------ 清楚未使用的网络
- docker network connect【网络名】【容器名】------ 使指定的容器连接加入指定的网络
- docker network disconnect 【网络名】 【容器名】------使指定的容器连接离开指定的网络
- docker network inspect ------ 查看网络详情信息
四、DockerCompose基础命令
命令:docker compose 【OPTIONS】[COMMAND]
(一)Options类型
- -f ------ 指定compose文件的路径
- -p ------ 指定project名称
(二)Commands类型
- up ------ 创建并启动所有service容器
- down ------ 停止并移除所有容器、网络
- ps ------ 列出所有启动的容器
- logs ------ 查看指定容器的日志
- stop ------ 停止容器
- start ------ 启动容器
- restart ------ 重启容器
- top ------ 查看运行的进程
- exec ------ 在指定的运行中容器中执行命令