Nemo

Nemo 关注TA

路漫漫其修远兮,吾将上下而求索。

Nemo

Nemo

关注TA

路漫漫其修远兮,吾将上下而求索。

  •  普罗旺斯
  • 负责帅就完事了
  • 写了1,496,113字

该文章投稿至Nemo社区   编程综合  板块 复制链接


Docker配置java环境,启动第一个tomcat

发布于 2016/11/16 15:03 2,206浏览 2回复 3,202

环境是:Ubuntu 16.04 x64,目前公司这边提供的笔记本。


Docker已经安装完毕,接下来创建镜像。

Docker只是一个容器,或者说是一个虚拟机会更适合一些。现在,虚拟机的环境已经部署完成,需要往虚拟机里安装系统。需要下载一些下载用于制作镜像的系统。

nemo@Cynthia:~$sudo docker pull index.alauda.cn/alauda/ubuntu

这里灵雀云的镜像中心拉取。或者也可以直接从Docker的镜像中心拉取,不过貌似非常慢:

nemo@Cynthia:~$sudo docker pull ubuntu

下载成功后,使用images命令查看本地的镜像列表:

nemo@Cynthia:~$ sudo docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
index.alauda.cn/alauda/ubuntu   latest              7e0e965a5c9f        22 months ago       255.1 MB

默认安装完 docker 后,每次执行 docker 都需要运行 sudo 命令,如果不跟 sudo,直接执行 docker 命令会报一些权限错误。这里需要注意。


镜像下载到本地以后,就可以使用Docker运行,
通过下面的命令参数启动容器,

docker run <相关参数> <镜像 ID> <初始命令>

-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,
格式:-v <宿主机目录>:<容器目录>

我相关程序都在当前机器的/opt/目录下,并且想把它挂载到容器的相同目录下:

nemo@Cynthia:~$sudo docker run -i -t -v /opt/:/opt/ 7e0e965a5c9f /bin/bash

“镜像 ID”,也可以使用“仓库名:标签名”,例如:index.alauda.cn/alauda/ubuntu :latest。

上面的命令,可以使用指定的镜像运行一个shell,如果想退出该终端,可以使用exit命令,
或者依次按下CTRL -p+CTRL -q,即可切换到宿主机器。不过这种方式,容器依然在后天运行。

 执行完上条命令后,会自动进入到docker的虚拟机里的终端状态,cd进入/opt/目录,可以发现当前机器目录下的文件已经同步过来。


接下来可以配置JDK和TOMCAT,与在Ubuntu下配置并无差异。

不过启动tomcat时必须通过bin/catalina.sh使bin/startup.sh启动,否则脚本执行后容器会马上退出。

那就索性写一个脚本来启动tomcat好了。

root@7e0e965a5c9f:/# vi /opt/start.sh

添加以下内容:

#!/bin/bash
# Export environment variable
source ~/.bashrc
# Start tomcat
bash /opt/tomcat8.0.33/bin/catalina.sh run

添加可执行权限:

root@7e0e965a5c9f:/#chmod u+x /data/start.sh


使用Docker构建镜像的两种方法:

使用docker commit 命令,更直观一些;

使用docker build命令和Dockerfile文件,可以模板化镜像构建过程;

这里使用docker commit的方式创建镜像。

查看容器列表:

sudo docker ps -a

提交一个新的镜像:

sudo docker commit e2f20cd0841b nemo/testdocker

提交成功后

sudo docker images

可以查看目前本地的镜像列表。

sudo docker inspect nemo/testdocker

可以查看镜像的详细信息。


docker run -d -p 18080:8080 --name test nemo/testdocker /opt/start.sh

-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 18080 端口,

这样就向外界暴露了 18080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。

查看后台是否启动成功:

docker ps

如果届时docker正常启动,那么这时候在浏览器打开:http://127.0.0.1:8080/即可以访问到docker容器中的tomcat了。






本文标签
 {{tag}}
点了个评