本站内容版权属于本人。转载须告知本人,写明出处,并在文首提供指向本站对应文章的链接。
本文链接:用Docker部署其他服务
本文链接:用Docker部署其他服务
这里已经和PHP+MySQL没什么关系了。我有一些自己写的服务器也需要迁移,索性就也用Docker吧。
首先是创建目录,将相关的文件都放进去,并创建Dockerfile:
1 2 3 4 |
mkdir /home/$USER/docker/my-service cp my-server.jar /home/$USER/docker/my-service cp my-server.conf /home/$USER/docker/my-service vi Dockerfile |
在Dockerfile里输入内容:
1 2 3 4 5 6 7 8 9 |
FROM openjdk:8-alpine RUN mkdir /opt/my-service && mkdir /opt/my-service/conf COPY my-server.jar /opt/my-service COPY my-server.conf /opt/my-service/conf EXPOSE 8347 CMD ["java", "-Xms100M", "-Xmx300M", "-cp", "/opt/my-service/my-service.jar", "io.chaofan.myservice.MyService", "/opt/my-service/conf/my-service.conf"] |
因为这是个Java程序,所以Docker的来源要是包含Java运行时才行,这里我选用了openjdk:8-alpine
,应该是最小,功能最少的一个,不过够用了。接下来的RUN和COPY语句在容器里建立了目录,然后将宿主机上的相应文件复制进去。EXPOSE语句会将相应端口暴露出来。最后的CMD语句是容器最终运行的命令。
然后就可以编译镜像和启动容器了:
1 2 3 4 5 6 7 8 9 |
docker build --tag=my-service:1.0 . docker container run \ --detach \ --publish 0.0.0.0:8347:8347 \ --restart unless-stopped \ --volume /home/ubuntu/config/my-service:/opt/my-service/conf \ --name my-service \ my-service:1.7 |
这样,我自己写的服务也能被放在Docker里,方便之后的部署和管理。