docker部署tomcat
前言
接上一篇 在Deepin15.10中安装Docker,现在部署一个tomcat到Docker容器中并运行。
Docker 是服务器–客户端架构。命令行运行docker命令有:
# service 命令的用法
$ sudo service docker start
# systemctl 命令的用法
$ sudo systemctl start docker
1. image 文件
Docker把应用程序及其依赖,打包在 image 文件中。
- 只有通过 image 文件,才能生成 Docker 容器。
- image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。
- 同一个 image 文件,可以生成多个运行的容器实例。
- image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。
# 列出本机的所有 image 文件。
$ sudo docker image ls
# 删除 image 文件
$ sudo docker image rm [imageName]
部署的 tomcat就是一个 image 文件。
2. 部署Tomcat
(1)搜索tomcat镜像
search 语法:
sudo docker search 镜像名称:镜像TAG
# 如: 没有加TAG,表示默认搜索的是最新版本的tomcat镜像
$ sudo docker search tomcat
# 如:搜索 tomcat 8.5 版本
$ sudo docker search tomcat:8.5
(2)拉取tomcat镜像
下载第一个Stars最高的镜像
# 拉取 tomcat镜像
sudo docker pull tomcat
# 查看docker所有的镜像
sudo docker image ls # sudo docker images
(3)运行tomcat
命令如下:
sudo docker run
-d
-p 8090:8080
--name my_tomcat
-v /data/my_tomcat:/usr/local/tomcat/webapps
tomcat:8.5
docker run
其实是 create 和 start 两个命令的合并-d
表示后台运行容器,并返回容器ID-p 8090:8080
表示 将容器的8080端口映射到主机的8090端口,前者是主机访问端口:后者是容器内部端口--name
给容器起别名,如 my_tomcattomcat:8.5
表示 镜像名称:镜像TAG,默认最新版可以不加TAG-v
表示把容器中的某个文件夹挂载到主机中,格式: -v 主机目录:容器目录
docker run -p 8090:8080 tomcat 命令,其实是运行容器,并启动容器内的tomcat
3.进入tomcat容器目录
进入容器目录有两种方式:
(1) 进入一个正在运行容器的目录
要点: 获取正在运行容器的ID
需要使用两个命令:
docker ps # 查看正在运行的容器,并得到 容器id
# 进入tomcat容器内部
docker exec -it [容器id] /bin/bash # 中间那个是容器id 就是 CONTAINER_ID
# -it 表示进入
(2) run运行容器并进入容器目录
sudo docker run -it -p 8090:8080 tomcat /bin/bash # 运行容器并进入容器目录,但不启动 tomcat
4. 停止已运行的容器
docker stop [容器id] # 如 sudo docker stop f96d191f065c