1,系统版本要求。
CentOS 7 系统为64位、系统内核版本为 3.10 以上。
CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
查看系统情况命令:
uname -r
2,若已经安装过docker,可使用命令卸载,或跳过安装过程。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
3,安装一些必要的系统工具:
yum install -y yum-utils device-mapper-persistent-data lvm2
4,添加软件源信息:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5,更新 yum 缓存:
yum makecache fast
6,安装 Docker-ce:
yum -y install docker-ce
7,查看是否安装成功
docker version
8,启动 Docker 后台服务
systemctl start docker
9,查看运行情况
上面是启动成功。
这是未启动状态,无法连接到docker。
10,查看本地镜像
docker images
11,运行hello-word。没有时会自动到docker远程仓库下载。
docker run hello-world
都这里docker安装就基本完成了,接着使用docker。以使用tomcat为例。
12,本地没有tomcat镜像时,搜索tomcat镜像。
docker search tomcat
13,我们拉取第一个,apache tomcat官方镜像。OFFICIAL为ok表示官方发布。
docker pull tomcat
等待下载完成。
14,查看本地是否有tomcat镜像。
docker images | grep tomcat
15,使用第一种方式启动tomcat镜像。
//第一种方式:-p 把容器8080端口映射到本机8080端口,浏览器访问。-d 后台运行
//后面会介绍其他方式,方便操作容器。
docker run -d -p8080:8080 tomcat
浏览器localhost:8080访问,如果是使用的虚拟机,则在本机浏览器输入虚拟机ip:8080访问。
部署项目,进入容器。
先查看容器id
docker ps
使用容器id进入容器
docker exec -it 97b260b213ef /bin/bash
发现路径为/usr/local/tomcat。后面会用到。
把项目部署到tomcat/webapps/ROOT
//进到root目录
cd webapps/ROOT/
//查看目录下的文件
ls
//如果是测试,删除目录下所有文件
rm -rf ./*
//退出容器
exit
把项目拷贝到容器中,如果使用虚拟机,需要先放到虚拟机中。
//把usr下面的crm.war拷贝到97b260b213ef这个容器的root目录下
docker cp /usr/crm.war 97b260b213ef:/usr/local/tomcat/webapps/ROOT
解压war包。
unzip crm.war
删除war包。
rm -rf ./crm.war
退出容器重新启动tomcat镜像。
//mystifying_elbakyan是容器名,不是id
docker restart mystifying_elbakyan
容器名取图片中names字段。
查看启动日志
//查看启动日志,后面接容器名
docker logs mystifying_elbakyan
浏览器访问。
到这里就算完成了,但是可以看出这种方式比较复杂,需要频繁进去容器,而且如果需要改配置,还需要安装vi插件。
进入容器后用命令apt-get update下源库
然后执行apt-get install vim命令
重启容器又需要重新安装vi,非常累。
16,使用目录映射方式启动容器。
查看运行的tomcat镜像
docker ps
停止tomcat镜像
docker stop mystifying_elbakyan
查看是否有name为tomcat的容器。
docker ps -a
移除容器
docker rm tomcat
把项目放到指定映射的目录下。
解压war包,删除war包
unzip crm.war
rm -rf crm.war
启动镜像,把本机的/usr/test/webapps目录映射到容器的/usr/local/tomcat/webapps目录
//-d 后台运行,-p 端口映射,--name 别名(不在是一串乱七八糟的字母),-v 文件或文件夹映射
docker run -d -p 8080:8080 --name tomcat -v /usr/test/webapps:/usr/local/tomcat/webapps tomcat
浏览器ip:8080查看
有的时候我们还需要修改配置,正如启动命令中目录映射一样 -v就可以了
docker run -d -p 8080:8080 --name tomcat -v /usr/test/webapps:/usr/local/tomcat/webapps -v /usr/test/conf/server.xml:/usr/local/tomcat/conf/server.xml tomcat
17,使用本地镜像修改后建立新的镜像
如果我们使用的是第一种方式,可能会把项目放在镜像中,或者修改了配置文件,为了保存修改我们需要生成新的镜像,不然重启镜像,镜像就会被初始化。
在创建新镜像之前,我们先注册登陆到docker仓库https://hub.docker.com/
创建仓库,假如名称为tomcat,定义为私有或公开
现在创建新镜像:
//715是被复制的容器的id,后面是新镜像的tag信息,需与上面仓库的信息一致,不然在后面连接仓库的
//时候会有问题
docker commit 7152870579da shiqiang336699/tomcat:v1
登陆到远程仓库
docker login
上传到仓库
docker push shiqiang336699/tomcat
这样你下次直接拉下来就可以用了。docker pull shiqiang336699/tomcat
好,到这里就完成了所有操作了。