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是否启动成功
我这里遇到几个问题,总结一下:
- 安装jdk报错
报错信息显示缺少某个文件于是安装此文件及依赖(–nogpgcheck是忽略对这个rpm进行校验,否则报错)
yum install libnsl.i686 libnsl.x86_64 --nogpgcheck
- 启动tomcat报错
我这里容器使用8080端口,与宿主机8080端口相映射,容器中tomcat默认使用8080端口