最近在想把腾讯云上的一个web app移到新买的阿里云上,但是一想到又需要在阿里云上重新配置一番环境和数据库就莫名的心烦。突然想到前些日子学的docker,于是决定在在阿里云上用docker去安装tomcat。
这是ubuntu 14.04的安装过程:
1、首先更新包信息
sudo apt-get update
2、安装ca证书
sudo apt-get install apt-transport-https ca-certificates
3、获取并安装最新版的docker
—Docker官方为简化安装流程,提供了一套安装脚本,Ubuntu可以直接使用这套脚本安装
这个安装起来比较方便
wget -qO- https://get.docker.com/ | sh
如果使用centos 安装就比较方便了:
yum install docker
有时候yum会被其他的进程占用出错,可以查看正在使用的进程,直接kill就好
ps -ef|grep yum
kill -9 16208
在安装后可以查看是否安装成功:
docker --version #可以查看到当前docker的版本
启动docker服务:
service docker start
可以先下载个hello-world进行测试:
docker pull hello-world
然后运行hello-world镜像:
docker run hello-world
如果成功则会出现以下:
在使用docker容器的时候,需要同步下源的索引,不然是获取不到最新的软件包的,比如使用vim时候会出现
vim: command not found
这时候使用
sudo apt-get update
后就可以下载软件了
注意:安装镜像之前先更改下docker的配置文件,因为官方默认使用的国外的服务器,所以在下载的时候超级慢,慢到你怀疑人生,有时候还会下载中断。加速器可以使用灵雀云、阿里云、和DaoCloud的加速器,这个网上都有教程,自己百度,这里只是简单修改下配置问文件使用国内的镜像作为加速器。
首先打开配置文件daemon.json,centos上安装后有此文件,但是ubuntu上需要自己创建文件:
vim /etc/docker/daemon.json
在文件中加入:
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
然后重启守护进程:
service docker restart
你可以先不使用加速器,前后对比下,速度快的不是一点半点。
搜索镜像使用下面命令:
docker search tomcat
搜索的结果为:
可以看到,星数最高的是官方的tomcat
有关官方tomcat的镜像可以访问 https://hub.docker.com/r/library/tomcat/
在官网上可以看到 7.0.73-jre7,7.0-jre7, 7-jre7, 7.0.73, 7.0, 7”等等 是这个tomcat库支持的tag(标签),这里我们选用的是 “7” 这个标签
docker pull tomcat:7
下载完毕后查看下本地的镜像:
docker images
看到tomcat镜像已经下载,镜像名字后面没有带有7,但是在使用的时候一定要带上7这个标签
然后运行tomcat镜像生成容器:
docker run tomcat:7
可以访问 http://ip:8080 看到小黄猫说明容器的tomcat已启动成功
如果端口被占用的话,还可以指定容器与主机的映射端口:
docker run -p 8081:8080 tomcat:7
再次访问的话用映射端口就可以访问到,访问地址是http://ip:8081
我这里运行的web应用为 Database
docker run --privileged=true -v /app/deploy/www:/usr/local/tomcat/webapps/Database -p 8081:8080 tomcat:7
以上,已成功把web应用部署在Docker容器运行。
下面是一些在使用docker容器中经常所用到的一些命令:
# 查看所有镜像
docker images
# 正在运行容器
docker ps
# 查看docker容器
docker ps -a
# 启动tomcat:7镜像
docker run -p 8080:8080 tomcat:7
# 以后台守护进程的方式启动
docker run -d tomcat:7
# 停止一个容器
docker stop b840db1d182b
# 进入一个容器
docker attach d48b21a7e439
# 进入正在运行容器并以命令行交互
docker exec -it e9410ee182bd /bin/sh
# 以交互的方式运行
docker run -i -t -p 8081:8080 tomcat:7 /bin/bash