先使用Dockerfile构建微服务镜像
以项目05-ms-eureka-server为例,将该微服务的可运行jar包构建成docker镜像
用Intellij idea 构建jar(我的IDEA不小心汉化了,用的比较别扭)
1.选中Java项目工程名称,在菜单中选择 File->project structure…
2. 在弹出的窗口中左侧选中"Artifacts",点击"+“选择jar,然后选择"from modules with dependencies”。
1、将jar包上传linux服务器/app/eureka目录,在jar包所在目录创建名为Dockerfile的文件
2、在Dockerfile中添加以下内容
# 基于哪个镜像
From java:8
# 将本地文件夹挂载到当前容器
VOLUME /tmp
# 复制文件到容器
ADD microservice-eureka-server-0.0.1-SNAPSHOT.jar /app.jar
# 声明需要暴露的端口
EXPOSE 8761
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/app.jar"]
3、使用docker build命令构建镜像
# docker build -t microservice-eureka-server:0.0.1 .
# 格式: docker build -t 镜像名称:标签 Dockerfile的相对位置
在这里,使用-t选项指定了镜像的标签。执行该命令后,终端将会输出如下的内容
4、启动镜像,加-d可在后台启动
# docker run -p 8761:8761 microservice-eureka-server:0.0.1
5、访问http://Docker宿主机IP:8761/,可正常显示Eureka Server首页
Compose 是一个用于定义和运行多容器的Docker应用的工具。使用Compose,你可以在一个配置文件(yaml格式)中配置你应用的服务,然后使用一个命令,即可创建并启动配置中引用的所有服务。
Docker Compose的安装
Compose的安装有多种方式,例如通过shell安装、通过pip安装、以及将compose作为容器安装等等。本文讲解通过pip安装的方式。其他安装方式如有兴趣,可以查看Docker的官方文档:Install Docker Compose | Docker Documentation
#ubuntu方式
sudo apt-get update
sudo apt-get install docker-compose-plugin
Compose的使用非常简单,只需要编写一个docker-compose.yml,然后使用docker-compose 命令操作即可。docker-compose.yml描述了容器的配置,而docker-compose 命令描述了对容器的操作。
Docker Compose入门示例
Compose的使用非常简单,只需要编写一个docker-compose.yml,然后使用docker-compose 命令操作即可。docker-compose.yml描述了容器的配置,而docker-compose 命令描述了对容器的操作。我们首先通过一个示例快速入门:
使用Dockerfile为项目microservice-eureka-server构建Docker镜像吗,我们还以此项目为例测试
- microservice-eureka-server-0.0.1-SNAPSHOT.jar所在目录的上一级目录,创建docker-compose.yml 文件。 目录树结构如下:
├── docker-compose.yml
└── eureka
├── Dockerfile
└── microservice-eureka-server-0.0.1-SNAPSHOT.jar
- docker-compose.yml 中添加内容如下:
一定要以sevices开头,否则出现
#一定要以sevices开头
#一定要以sevices开头
#一定要以sevices开头
services:
springdemo:
build: ./springdemo
ports:
- "8000:8888"
expose:
- 8888
- docker-compose.yml 所在路径执行:
# docker-compose up
Compose就会自动构建镜像并使用镜像启动容器。也可使用 docker-compose up -d后台启动并运行这些容器
- http://宿主机IP:8000/ ,发现可以正常启动。