docker配置javaweb开发容器

首先拉一个空的ubuntu镜像
sudo docker pull ubuntu:14.04
接下来是创建两个数据卷 作为同步目录 一个我用来传输文件 一个用来部署war包
同步文件 冒号前的是主机的文件夹路径 冒号后的是容器的

docker run -v /home/docker_files:/usr/docker_files  --name dataVol centos /bin/bash

使用两个数据卷 基于java/ubuntu:v1.0镜像创建并运行一个叫J2EE的容器 并将容器8080端口转发到本地8000端口
3306端口转到本地8888端口

sudo docker run -it --volumes-from dataVol --volumes-from warVol -p 8000:8080--name J2EE java/ubuntu:v1.0 /bin/bash

在容器上安装jdk Tomcat Mysql

docker start J2EE #启动一个已创建的镜像
docker attach J2EE #进入J2EE容器命令行操作 exit可以退出命令操作并关闭容器 之后需要继续start

设置tomcat和mysql的自启动 试过普通主机的方式 不奏效 最后发现 自启动需要通过DockerFile来构建
以下是DockerFile内容

FROM javaweb/ubuntu:v1.0
ENTRYPOINT ["/home/entrypoint.sh"]

FROM 表示基于该镜像
ENTRYPOINT 表示入口点 每次容器启动 都会调用容器里的那个脚本 需要在容器打包成的镜像里事先编写好 不然等下build会失败

entrypoint.sh如下

#!/bin/sh -e
sh /usr/tomcat/apache-tomcat-7.0.70/bin/catalina.sh start 
service mysql start
bash

写了两条命令 一个是启动mysql 一个是启动tomcat tomcat记住要用catalina.sh不能用startup.sh 而且记得加start 加run的话会有命令占屏

再通过
docker build -t java:v1.0 .
. 点表示使用当前目录下的DockerFile 这样会再根据DockerFIle定制 再创建一个java:v1.0镜像 再通过这个镜像去创建容器就好了

这样就搭建好了 每次docker start J2EE 启动容器 会自动启动Mysql Tomcat 把war包放在同步目录下 就可以部署本地测试咯
妈妈再也不用担心我配环境了

然而还没完 还需要让容器中文支持

apt-get install language-pack-zh-hant language-pack-zh-hans-base

还需要dockerfile中添加

ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8

重新定制容器后 用locale检查 中文文件名就不会再乱码了
然而还没完 需要更改时区为北京时间

sudo dpkg-reconfigure tzdata

选择Asia/Shanghai 重置时区后at等定时任务需要重启动

/etc/init.d/atd restart

总算告一段落

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值