一、centos7下安装docker

1.检查你的系统是不是高于3.8的内核,如果没有请升级CentOS7或者Ubuntu 14

#uname -a

Linux xiao 3.10.0-514.6.2.el7.x86_64 #1 SMP Thu Feb 23 03:04:39 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

2.安装docker

#yum -y install docker-io

3.查看docker版本

#docker version

4.启动docker服务

#docker service start

5.跟随服务器启动

systemctl enable docker.service

6.如果没有本地镜像,可以下载一个centos7的镜像来作为基础运行环境

#docker search centos

#docker pull centos:7.2.1511

7.查看本地镜像

#docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos 7.2.1511 0a2bad7da9b5 3 days ago 194.6 MB

二、安装tomcat和jdk

1.到官网下载需要的版本

把下载的软件放到/root/software中

#ls /root/software

apache-tomcat-8.5.23.tar.gz 

jdk-8u151-linux-x64.tar.gz

2.挂载到docker容器中

docker run -i -t -v /root/software/:/mnt/software --privileged=true 0a2b /bin/bash  

其中,相关参数包括:
-i:表示以“交互模式”运行容器 -t:表示容器启动后会进入其命令行 -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
假设我们的所有安装程序都放在了宿主机的/root/software/目录下,现在需要将其挂载到容器的/mnt/software/目录下。
需要说明的是,不一定要使用“镜像 ID”,也可以使用“仓库名:标签名”,例如:docker.io/centos:7.2.1511
初始命令表示一旦容器启动,需要运行的命令,此时使用“/bin/bash”,表示什么也不做,只需进入命令行即可。

三、对容器进行操作

1.执行上一步命令进入到容器中,进行下列操作

(1).到挂载的software的文件中解压

#cd /mnt/software

#tar -zxf apache-tomcat-8.5.23.tar.gz

#tar -zxf jdk-8u151-linux-x64.tar.gz

(2).将文件移动到/opt文件下,方便管理

mv apache-tomcat-8.5.23 /opt/tomcat

mv jdk1.8.0_151 /opt/jdk

(3).配置java环境变量

#vi ~/.bashrc

在文件末尾加上

export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

保存退出

#source ~/.bashrc

#java -version

出现java版本证明jdk安装成功

(4).编写系统启动脚本并赋予权限

vi /root/run.sh

#!/bin/bash
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run

#chmod u+x /root/run.sh

#exit

2.退出容器,并查看确认没有正在运行的容器

(1).#docker ps 

#docker ps -a 查看刚刚操作的容器

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca67b7deea8b 0a2b "/bin/bash" 55 minutes ago Exited (0) 51 minutes ago jolly_yonath

(2).根据当前的容器ID创建新的镜像

#docker commit ca67 mytomcat:1.0

(3).查看当前的镜像

#docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
mytomcat 1.0 5ff9b01a5bec 53 minutes ago 592.4 MB
docker.io/centos 7.2.1511 0a2bad7da9b5 3 days ago 194.6 MB

四、运行一个容器

1.以守护进程方式启动新的镜像并传入启动参数

docker run -d -p 8080:8080 --name tomcat1 mytomcat:1.0 /root/run.sh

参数详情:

-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。 -p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。 --name:表示容器名称,用一个有意义的名称命名即可。
关于 Docker 网桥的内容,需要补充说明一下。实际上 Docker 在宿主机与容器之间,搭建了一座网络通信的桥梁,我们可通过宿主机 IP 地址与端口号来映射容器内部的 IP 地址与端口号,
在一系列参数后面的是“镜像名”或“镜像 ID”,怎么方便就怎么来。最后是“初始命令”,它是上面编写的运行脚本,里面封装了加载环境变量并启动 Tomcat 服务的命令。
当运行以上命令后,会立即输出一长串“容器 ID”,我们可通过docker ps命令来查看当前正在运行的容器。

2.查看容器是否启动

#docker ps 

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ef7b3a6a5617 mytomcat:1.0 "/root/run.sh" 39 minutes ago Up 39 minutes 0.0.0.0:8080->8080/tcp tomcat1

3.浏览器输入网址

127.0.0.1:8080

可以看到tomcat启动成功的页面

五、删除

1.删除容器

docker rm tomcat1

删除所有容器(必须先停止容器运行)

docker stop $(docker ps -a -q)

docker rm $(docker ps -a -q)

2.删除镜像

docker rmi mytomcat:1.0

资料参考:

.http://blog.csdn.net/u011627980/article/details/51898234