docker安装以及容器中配置jdk/tomcat

docker安装以及容器中配置jdk/tomcat

环境软件需求:CentOS7内核版本3.10以上,64位系统

// uname -a  查看虚拟机内核版本
uname -a

选择离线安装Docker17.12版本

(1)docker安装包下载
链接: https://download.docker.com/linux/centos/7/x86_64/stable/Packages/.
下载此版本:docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm
(2)几个依赖文件
链接: http://mirrors.163.com/centos/7/os/x86_64/Packages.
audit-libs-2.8.5-4.el7.x86_64.rpm
audit-libs-python-2.8.5-4.el7.x86_64.rpm
checkpolicy-2.5-8.el7.x86_64.rpm
libcgroup-0.41-21.el7.x86_64.rpm
libseccomp-2.3.1-4.el7.x86_64.rpm
libsemanage-python-2.5-14.el7.x86_64.rpm
policycoreutils-2.5-34.el7.x86_64.rpm
policycoreutils-python-2.5-34.el7.x86_64.rpm
python-IPy-0.75-6.el7.noarch.rpm
setools-libs-3.3.8-4.el7.x86_64.rpm
链接: http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=1&dl=40&search=container-selinux&field[]=1&field[]=2.
下载:container-selinux-2.9-4.el7.noarch.rpm
(3)将以上依赖rpm上传到虚拟机的某个路径下(我这里使用xftp上传到/root/docker下)
将docker-ce**.rpm和container**.rpm复制到/root/docker/rpm
执行下面语句,先安装依赖,在安装docker

rpm -ivh /root/docker/*.rpm
rpm -ivh /root/docker/rpm/container-selinux-2.9-4.el7.noarch.rpm
rpm -ivh/root/docker/rpm/docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm

(4)启动docker

service docker start

(5)查看版本号(检查是否安装成功)安装成功会显示client及server的版本

docker version

遇到的问题:
在CentOS6中安装docker,遇到各种问题,首先得升级内核版本,各种依赖版本找不到合适的,导致docker安装不成功,果断重装CentOS7,完美解决所有不开心

拉取centos镜像作为运行web项目的容器
新建dockerFile文件,我是在docker默认安装路径下建的(docker默认安装路径/var/lib/docker),将jdk/tomcat解压后放在dockerFile同一级目录下

vi dockerFile //新建并编辑
#使用的基础镜像
FROM centos
#创建者信息
MAINTAINER <创建者名字> <test@163.com>

#把jdk和tomcat添加到容器中
COPY apache-tomcat-6.0.44 /usr/local/apache-tomcat-6.0.44/
COPY jdk1.6.0_54 /usr/local/jdk1.6.0_54/

#配置jdk和tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.6.0_54/
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin

#容器运行监听端口
EXPOSE 8080
CMD /usr/local/apache-tomcat-6.0.44/bin/catalina.sh run

构建镜像(-t参数:镜像的名字及标签)

docker build -t itpt/centos:v1.0 .

使用镜像构建容器并启动(查看是否启动成功—status为up状态),run命令执行一次,创建一个容器,相当于create和start

docker run -tid -p 8080:8080 itpt/centos:v1.0 /bin/bash

查看容器是否创建成功

docker ps -a

容器启动后,进入容器(amazing_ardinghelli为容器名字-自动创建)

docker exec -it amazing_ardinghelli /bin/bash

在容器中验证jdk版本

java -v //显示正确版本,则安装成功

在浏览器中输入https:虚拟机ip地址:8080,查看tomcat是否启动成功
我这里遇到几个问题,总结一下:

  1. 安装jdk报错在这里插入图片描述
    报错信息显示缺少某个文件于是安装此文件及依赖(–nogpgcheck是忽略对这个rpm进行校验,否则报错)
yum install libnsl.i686 libnsl.x86_64 --nogpgcheck
  1. 启动tomcat报错
    我这里容器使用8080端口,与宿主机8080端口相映射,容器中tomcat默认使用8080端口
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker 创建容器涉及到多环境时,可以通过以下两种方式来解决: 1. 在单个容器安装多个应用程序和环境。这种方式可以使用 Dockerfile 来定义容器的构建过程,例如可以在同一个 Dockerfile 安装 Nginx 和 Java 等多个应用程序和环境。在 Dockerfile ,可以使用 `RUN` 命令来安装软件包和配置环境变量,例如: ``` FROM ubuntu:latest RUN apt-get update && apt-get install -y nginx openjdk-8-jdk ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` 在上面的例子Dockerfile 定义了一个基于 Ubuntu 最新版的镜像,并通过 `RUN` 命令安装了 Nginx 和 Java 环境。还使用 `ENV` 命令设置了 Java 环境变量,这样就可以在容器直接使用 Java 环境了。 2. 将不同的应用程序和环境分别部署到不同的容器。这种方式可以使用 Docker Compose 来定义多个容器的运行环境,例如可以使用 Docker Compose 定义一个包含 Nginx 和 Tomcat 两个容器的应用程序环境。在 Docker Compose 文件,可以使用 `services` 来定义不同的服务,例如: ``` version: '3' services: nginx: image: nginx:latest volumes: - /path/to/nginx/conf:/etc/nginx - /path/to/nginx/html:/usr/share/nginx/html ports: - "80:80" tomcat: image: tomcat:latest volumes: - /path/to/tomcat/webapps:/usr/local/tomcat/webapps ports: - "8080:8080" ``` 在上面的例子Docker Compose 文件定义了两个服务,一个是 Nginx 服务,一个是 Tomcat 服务。通过 `image` 参数来指定使用哪个镜像来运行容器,通过 `volumes` 参数来挂载宿主机上的目录到容器,通过 `ports` 参数来将容器的端口映射到宿主机上。使用 Docker Compose 可以更加方便地管理多个容器之间的依赖关系和运行环境。 对于 Nginx 的配置文件,可以通过在宿主机上创建一个目录,将 Nginx 的配置文件放置在该目录,并将该目录挂载到容器来实现。例如,在上面的 Docker Compose 文件,可以将 Nginx 的配置文件放置在 `/path/to/nginx/conf` 目录,在 Nginx 服务的配置使用 `-v /path/to/nginx/conf:/etc/nginx` 参数来将该目录挂载到 Nginx 容器的 `/etc/nginx` 目录下。这样就可以在宿主机上修改 Nginx 的配置文件,并使修改后的配置文件立即生效。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值