安装centos

docker pull centos

  • 查看镜像
  1. [root@localhost /]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. docker.io/centos latest 1e1148e4cc2c 2 months ago 202 MB
  4. [root@localhost /]#

可以看到centos还是很轻巧,只有202MB,不像虚拟机那样大。

  • 启动centos容器

使用如下命令启动容器
docker run -i -t -v /root/software/:/mnt/software/ --privileged=true 1e1148e4cc2c /bin/bash

  1. [root@localhost /]# docker run -i -t -v /root/software/:/mnt/software/ --privileged=true 1e1148e4cc2c /bin/bash
  2. [root@6316d53d801f /]#

-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
—privileged=true 使用该参数,container内的root拥有真正的root权限。

安装jdk

这里通过yum方式安装,当然也可以下载二进制文件安装

  1. #查看yum库中的java
  2. yum -y list java*
  3. #装需要的jdk版本的所有java程序
  4. yum -y install java-1.8.0-openjdk*

安装完成查看java版本

  1. [root@d6ff5de0fba5 /]# java -version
  2. openjdk version "1.8.0_191"

查看java安装地址 (可通过yum install which安装which)

  1. [root@d6ff5de0fba5 bin]# which java
  2. /usr/bin/java

配置环境变量

  1. #打开环境变量配置文件
  2. vi /etc/profile
  3. #增加下面内容到该文件
  4. export JAVA_HOME=/usr/bin/java #这里是java的安装地址
  5. export PATH=$JAVA_HOME/bin:$PATH
  6. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  7. #使环境生效
  8. source /etc/profile

安装tomcat

  1. yum install wget
  2. wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.92/bin/apache-tomcat-7.0.92.tar.gz
  3. tar zxvf apache-tomcat-7.0.92.tar.gz
  4. # 添加JAVA_HOME和JRE_HOME两个环境变量
  5. vi /mnt/software/apache-tomcat-7.0.92/bin/catalina.sh
  6. # 增加下面内容到该文件
  7. export JAVA_HOME=/usr
  8. export JRE_HOME=/usr
  9. #创建启动脚本
  10. vi /root/run.sh
  11. # 添加以下内容:
  12. #!/bin/bash
  13. # Export environment variable
  14. source /etc/profile
  15. # Start tomcat
  16. sh /mnt/software/apache-tomcat-7.0.92/bin/catalina.sh run
  17. #添加可执行权限:
  18. chmod u+x /root/run.sh

构建镜像

  1. [root@localhost ~]# docker commit d6ff5de0fba5 mycentos:v1
  2. sha256:fce3f9e8d88294ca110bb0ef327926576f664ea9d3d8db09c07be93c9f4f2e16
  3. [root@localhost ~]# docker images
  4. REPOSITORY TAG IMAGE ID CREATED SIZE
  5. mycentos v1 fce3f9e8d882 15 seconds ago 813 MB
  6. docker.io/centos latest 1e1148e4cc2c 2 months ago 202 MB

启动镜像,端口映射值80端口,其他端口也可以,执行/root/run.sh启动脚本。

  1. [root@localhost ~]# docker run -d -p 80:8080 --name javaweb -v /root/software/:/mnt/software/ fce3f9e8d882 /root/run.sh
  2. 02c0914bd20f916ac10de2e52e1a017552621a76ad9f9a03931439c542a3a460

浏览器访问 宿主机ip:80

  1. # 进入镜像
  2. docker exec -it javaweb bash
  3. # 测试文件
  4. vi /mnt/software/apache-tomcat-7.0.92/webapps/demo.jsp
  5. #写入一下内容
  6. <%
  7. String str = "Hello World";
  8. out.print(str);
  9. %>

访问测试文件,宿主机ip:80/demo.jsp

代码汇

下次直接通过docker start javaweb直接启动镜像就可以访问了。