一、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
浙公网安备 33010602011771号