【记录】 Docker 的安装和通过 Docker 使用 Tomcat and mongoDB 的过程
CentOS 7 下安装 Docker
摘自 菜鸟教程
Docker 要求 CentOS 系统的内核版本高于 3.10
通过 uname -r 命令查看你当前的内核版本
[root@runoob ~]# uname -r
移除旧的版本
[root@runoob ~]# yum remove docker
安装一些必要的系统工具
[root@runoob ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息
[root@runoob ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 缓存
[root@runoob ~]# yum makecache fast
安装 Docker-ce
[root@runoob ~]# yum -y install docker-ce
启动 Docker 后台服务
[root@runoob ~]# systemctl start docker
测试运行 hello-world
[root@runoob ~]# docker run hello-world
Docker 中安装以及配置 Tomcat
安装 Tomcat
查找Docker Hub上的tomcat镜像
docker search tomcat
拉取官方的镜像
docker pull tomcat
这样 Tomcat 就被安装好了,接下来进行自定义配置
配置 Tomcat
首先在主机挑选任意一个喜欢的位置建立 tomcat 文件夹,该文件夹中放置安装 tomcat 的三个配置文件夹,分别为 conf、logs、webapps 三个文件夹。这三个文件夹可以在 windows 系统中安装的 tomcat 目录中拷贝一份进来。然后执行以下命令。
该命令代表启动 tomcat,并且设置启动名称 name 和端口号 port,并将主机当前目录下的 conf、logs、webapp 目录挂载到容器的 /usr/local/tomcat/ 下的 conf、logs、webapp 目录中,
这样以后修改 tomcat 只需要修改该目录下的相关文件即可。
docker run --name tomcat -p 8080:8080 -v $PWD/webapps:/usr/local/tomcat/webapps -v $PWD/logs:/usr/local/tomcat/logs -v $PWD/conf:/usr/local/tomcat/conf -d tomcat
通过运行以上命令只之后,可以通过 docker ps 查看正在运行的容器,如果有看到 tomcat 则启动成功,可以通过服务器公网 IP地址 + 设置的端口号进行访问
注意:执行该命令需要在本步骤新建的 tomcat 文件夹中执行。修改配置文件并重新启动 Tomcat
有时候我们需要修改 tomcat 的端口号或其它配置,即修改 server.xml 文件,那需要怎么做呢?
首先如果当前有正在运行的 Tomcat,则需要停止并删除该容器(删除该容器并不是删除镜像,因此尽管删除)
docker stop 00fe9ba25a8c // 停止当前启动的 tomcat,后跟 tomcat 容器 ID,用 name 也可以
docker rm 00fe9ba25a8c // 删除 tomcat 容器
删除过后去到之前在主机创建的 tomcat 文件夹中,进入 conf 目录,并通过 vim 命令修改 server.xml 文件,在里面可以修改端口号和 docBase 等配置
修改成功之后回到 tomcat 目录下,运行下面的命令即可开启新配置的 tomcat, -p 后跟你修改过后的端口号
docker run --name tomcat -p 8081:8081 -v $PWD/webapps:/usr/local/tomcat/webapps -v $PWD/logs:/usr/local/tomcat/logs -v $PWD/conf:/usr/local/tomcat/conf -d tomcat
配置项目到 Tomcat
当我们需要将自己的项目跑起来的时候怎么办呢?
只需要将自己项目的文件放入 tomcat 文件夹下的 webapps 文件夹中即可,立即生效,不需要重启 tomcat 服务器。
Docker 中使用 mongoDB
安装 mongoDB
查找Docker Hub上的 mongo 镜像
docker search mongo
拉取官方的镜像
docker pull mongo注意:在拉取官网镜像的时候可以在 mongo 后跟 :X.X,即跟上版本号,例如 mongo:3.2,跟版本号的 TAG 就为版本号。不跟默认拉取最新版本,默认 TAG 名称为 latest ,TAG 名称可以通过 docker images 查看
使用 mongo 镜像
在自己喜欢的目录下运行以下命令,将主机中当前目录下的db挂载到容器的/data/db,作为mongo数据存储目录
-p 27017:27017 :将容器的 27017 端口映射到主机的 27017 端口
:latest 代表 TAG 名称,可跟可不跟
docker run -p 27017:27017 -v $PWD/db:/data/db -d mongo:latest
查看启动情况
docker ps
使用mongo镜像执行mongo 命令连接到刚启动的容器,主机IP为172.17.0.1
docker run -it mongo:latest mongo --host 172.17.0.1
Docker 卸载安装镜像文件
卸载安装镜像文件需要先删除容器再删除镜像
以我删除 nginx 为例
第一步:停止 nginx (因为我的 nginx 在运行中,运行中的容器可以通过 docker ps 查看)docker stop 00fe9ba25a8c // 后跟容器 ID第二步:删除 nginx 容器
docker rm 00fe9ba25a8c // 后跟容器 ID
删除容器成功后,通过 docker images 还能看到 nginx 依然存在,因为还没有删除镜像
第三步:删除 nginx 镜像docker rmi 00fe9ba25a8c // 该容器 ID 通过 docker images 查看
Docker 常用基本命令
从Docker Hub查找 mongo 镜像[root@runoob ~]# docker search mongo
查看本地镜像列表
[root@runoob ~]# docker images
显示所有容器
[root@runoob ~]# docker ps -a
显示所有在运行的容器
[root@runoob ~]# docker ps
拷贝主机的/root/wd_app文件到tomcat容器(容器ID为96f7f14e99ab)的/usr/local/tomcat/webapps目录
[root@runoob ~]# docker cp /root/wd_app 96f7f14e99ab:/usr/local/tomcat/webapps