概念:
轻量级的虚拟化技术,使得开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux
-
镜像(Image):Docker 镜像(Image),包含了运行应用程序所需要的所有文件、配置和依赖项。镜像可以被认为是容器的原型,利用Dockerfile文件进行构建。
-
容器(Container):Docker容器可以被看作是一个可运行的应用程序实例。
容器具有自己的根文件系统和资源隔离机制,并且可以通过端口映射来让它们之间互相通信。容器可以被创建、启动、停止、删除、暂停等。
-
存储:Docker的容器可以通过数据卷和挂载主机目录等方式实现数据的复制和持久化,从而保证数据的可靠性和持久性。
-
网络:Docker提供了多种网络模式来实现容器之间的通信,例如容器间通信、容器与主机之间通信,以及不同Docker主机之间的通信。Docker还支持自定义网络,并可以为每个容器指定不同的网络配置。
-
文件系统:Docker基于AUFS(Advanced Multi-Layered Unification Filesystem)实现了文件系统的隔离。AUFS可将不同的文件系统挂载到同一个目录下,不同的容器之间共享相同的基础镜像。
Dockerfile
Dockerfile是一个文本文件,其中包含了一系列构建镜像所需的指令和说明。以下是使用Dockerfile构建镜像的基本步骤:
-
创建一个Dockerfile文件:在需要构建镜像的源代码所在的目录中,新建一个名为Dockerfile的文件。
-
编写Dockerfile:包含构建镜像所需的指令和配置。如,指定基础镜像、设置工作目录、复制文件、设置环境变量等。
构建镜像:在包含Dockerfile的目录中,执行docker build
-
FROM
:指定基础镜像。 openjdk:8 -
RUN
:在新的镜像中运行命令。 -
COPY
:将文件或目录从宿主机复制到新的镜像中。 -
ENV
:设置环境变量。 -
EXPOSE
:声明容器运行时需要监听的端口号。 -
CMD
:在容器启动时需要运行的命令。 -
ENTRYPOINT 执行exec java -jar /app.jar
-
VOLUME 挂载/tmp ADD添加 a.jar app.jar
-
制作一个项目镜像:
1.写一个dockerfile 不加文件后缀
FROM openjdk:版本
VOLUME /tmp
#添加
ADD 本地.jar 新名称.jar
ENTRYPOINT exec java -jar /新名称.jar
2.jar包和dockerfile放到同一个文件夹 打开终端 docker build -t image-name .
注意版本号(.)或:latest
3.运行:docker run -p 127.0.0.1:8089:8089/tcp app
后面那个端口号是docker内部的 映射到前面那个端口号
命令大全 centOS:
下载docker: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 启动:sudo systemctl start docker
docker命令:
拉镜像:docker pull 镜像名
查看镜像:docker images
查看运行的容器:docker ps
强制删除镜像:docker rmi -f 镜像名/id
构建镜像:docker build -t 镜像名(版本号::latest或 .点号)docker build -t myapp .