Docker概述
用于构建和发布应用的容器技术。
Linux下安装
1 | curl -fsSL get.docker.com -o get-docker.sh |
相关概念
镜像 image
一个镜像代表一个软件
容器 container
基于某个镜像运行一次就是生成一个容器
仓库 repository
用来存储docker中的所有镜像的具体位置。
远程仓库:docker在世界范围维护一个唯一的远程仓库
本地仓库:当前自己机器中下载镜像的存储位置
hello-world
1 | docker run hello-world |
1、docker run 镜像名
根据run后面的镜像运行一个容器
2、在运行之前先在自己本地仓库查找对应的镜像直接使用,找不到再去远程仓库下载使用。
Docker相关命令
docker引擎以及帮助相关
1 | docker info |
images相关
1 | # 查看本地仓库的所有镜像 |
container相关
1 | # 运行容器 |
常见软件的启动
1 | # mysql |
Docker中的网络
Docker允许通过外部访问容器或容器互联的方式来提供网络服务。
一般在使用docker网桥实现容器与容器之间通信时,都是站在一个应用的角度进行容器通信。
1 | # 查看docker网桥配置 |
Dockerfile
用于构建自定义镜像
编写Dockfile文件:
1 | FROM openjdk:8-jdk |
- FROM 基于哪个镜像进行构建
- WORKDIR 定义静进入容器时的默认位置,接下来后续操作的工作空间
- ADD 将上下文中的jar文件复制到工作空间,压缩文件会自动解压,COPY则不会
- EXPOSE 暴露端口
- RUN 创建新的镜像层,用于安装软件包
- ENTRYPOINT 添加启动应用的固定命令,可接受docker run命令的参数
- CMD 执行jar
项目打包
1 | # 跳过test进行打包 |
将Dockerfile文件与项目的.jar文件放在同一目录下
执行构建命令:
1 | docker build -t 镜像名:版本 . |