6

用Docker部署其他服务

 3 years ago
source link: https://blog.chaofan.io/archives/%e7%94%a8docker%e9%83%a8%e7%bd%b2%e5%85%b6%e4%bb%96%e6%9c%8d%e5%8a%a1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
主页 › 用Docker部署其他服务

用Docker部署其他服务

本站内容版权属于本人。转载须告知本人,写明出处,并在文首提供指向本站对应文章的链接。
本文链接:用Docker部署其他服务

这里已经和PHP+MySQL没什么关系了。我有一些自己写的服务器也需要迁移,索性就也用Docker吧。

首先是创建目录,将相关的文件都放进去,并创建Dockerfile:

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里输入内容:

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语句是容器最终运行的命令。

然后就可以编译镜像和启动容器了:

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里,方便之后的部署和管理。

浏览人数: 168

 Docker, Java

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

评论

姓名 *

电子邮件 *

站点

CAPTCHA

验证码 *

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK