作者 | 时间 |
---|---|
刘权 | 2018-09-11 |
0. 环境准备:
安装配置好docker运行环境
- java
- maven
- git
- docker
1. docker在java项目中的运行。
- 在项目下创建一个文件:Dockerfile
FROM java:7
COPY target/zeus-wide-api-1.9.jar /opt
CMD ["java","-jar","/opt/zeus-wide-api-1.9.jar" ]
说明:
- FROM java:7 : 指定基础镜像为java7
- COPY target/zeus-wide-api-1.9.jar /opt :将要运行的jar包拷贝到指定目录
- CMD ["java","-jar","/opt/zeus-wide-api-1.9.jar" ] : 制定jar命令,启动jar包。
- 创建镜像:命令行cd到Dockerfile所在目录,执行以下命令:
docker build -t zeus:v1 .
说明:
- zeus: 是镜像的名称
- v1: 是镜像的tag
- 启动容器:
docker run -p 20881:20880 zeus:v1
说明:
- -p:指定本机端口和远程端口的映射。
- zeus: 镜像名称。
- v1:镜像的tag。
2. docker在dobbo的java项目中的运行(provider使用docker,consumer不使用docker)。
- 在项目下创建一个文件:Dockerfile
FROM java:7
COPY target/zeus-wide-api-1.9.jar /opt
ENV JAVA_OPTS=""
ENTRYPOINT exec java $JAVA_OPTS -jar /opt/zeus-wide-api-1.9.jar
说明:
- 由于dubbo需要向zookeeper中注册provider的ip地址,默认情况下,使用的是本机的地址,在这里也就是容器的地址,而在docker中的ip与外部机器网络是不同的,使用docker容器地址会导致consumer无法连接provider。需要通过JAVA_OPTS方式指定provider的向zookeeper注册的地址。
- 创建镜像:docker build -t dubbotest:v1 . 。
- 启动容器:docker run -e DUBBO_IP_TO_REGISTRY=192.168.6.194 -p 20881:20881 dubbotest:v1
说明:
- DUBBO_IP_TO_REGISTRY : dubbo向注册中心注册的provider的地址。
- 更多dubbo在docke中的配置可查看:
网友评论