Docker学习
本文详细介绍在CentOS环境下使用Docker搭建Tomcat环境的全过程,包括Docker安装、Dockerfile创建、镜像构建、容器启动及常用命令操作。
文章信息
- 原文链接:https://jiayq.blog.csdn.net/article/details/94404727
- 发布时间:2019-07-01 20:15:04
- 阅读量:853
- 分类:docker专栏收录该内容, 订阅专栏
- 标签:#docker如何使用, #dcoker如何创建tomcat环境, #如何用docker部署一个java 环境, #docker时区与语言的设置, #docker综合使用
摘要
文章浏览阅读853次。本文详细介绍在CentOS环境下使用Docker搭建Tomcat环境的全过程,包括Docker安装、Dockerfile创建、镜像构建、容器启动及常用命令操作。
Docker学习
- 1.docker安装
- 2.dockerfile创建
- 3.docker镜像的创建
- 4.启动镜像
- 5.常用命令
- 6.docker卸载
本文都是在centos环境下,搭建一个tomcat环境,需要先准备好tomcat、jdk解压后的文件。
1.docker安装
1
yum install docker -y
如果下载失败,则需要跟新后下载
1
yum update -y
然后执行下载。
验证是否成功:
1
docker run hello-world
docker 会自动从docker git上下载hello world的镜像,然后启动。
2.dockerfile创建
dockerfile就是定义一个docker镜像的,一般的环境可以在dockergit上下载,但是更多的是自定义的镜像。
dockerfile不是指定的随意写即可。
创建一个Dockerfile文件
1
touch Dockerfile
然后使用vi编辑器或者vim编辑器编辑文件
1
vi Dockerfile
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#以centos为操作系统
FROM centos
#以jdk1.8为基础开始
MAINTAINER a18792721831 <a18792721831@qq.com>
#镜像维护者的姓名和邮箱地址
ENV INNER_PATH tomcat
#设置环境变量
ENV TOMCAT_VERSION 8.0.35
ENV JAVA_HOME /$INNER_PATH
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /$INNER_PATH
ENV CATALINA_BASE $CATALINA_HOME
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#设置时区值
ENV TZ=Asia/Shanghai
#复制容器外的文件到容器内
COPY /tomcat8.0.53 /$INNER_PATH/
COPY /jdk1.8_111 /$INNER_PATH/
COPY /tomcat.keystore /$INNER_PATH/
RUN mkdir -p $INNER_PATH
#执行命令 mkdir -p 如果上级目录不存在,那么创建上级目录
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#设置时区
RUN yum install kde-l10n-Chinese -y
#下载中文包
RUN yum reinstall glibc-common -y
#下载中文插件
RUN localedef -c -f GBK -i zh_CN zh_CN.gbk
#设定中文环境值
ENV LC_ALL zh_CN.GBK
#设置中文环境变量
WORKDIR /tomcat/bin
#设置执行命令的当前目录
EXPOSE 8080
#容器对外开放8080端口
EXPOSE 443
#容器对外开发443端口
ENTRYPOINT ["catalina.sh","run"]
#必须执行的命令
CMD ["tail","-99f","/tomcat/logs/catalina.out"]
#附加命令
3.docker镜像的创建
1
docker build -f test/Dockerfile --tag=tomcat:test .
注意点:
- 使用-f参数就需要指定dockerfile的位置;
- 如果不指定dockerfile的位置,那么需要在dockerfile所在的位置执行,即需要把dockerfile从test文件夹中拿出来。
- –tag参数表示的是 镜像名:版本
- 不要忘记最后面还有一个点,这个点就是dockerfile的上下文环境,如果没有这个点,在复制文件的时候会找不到文件
- 也可以不使用点而是 / 把根目录作为上下文环境,那么在dockerfile中拷贝文件的上下文就是根目录,这样dockerfile与真实环境的上下文一致了。



4.启动镜像
1
docker run -d -p 17001:8080 -p 17002:443 -v /StarFSA/fsa/develop-4.3.0/webapps:/tomcat/webapps --name=tomcat_test tomcat:test
命令说明:
docker run 启动docker 镜像
-d表示后台启动
-p表示端口映射将宿主机(真实的物理机器)的17001端口映射到容器的8080端口,访问宿主机的17001端口等价于访问容器的8080端口
-v文件挂载:将宿主机的目录挂载到容器的目录下。等效于dockerfile中的COPY,但是更加灵活,非常适合于经常变更的内容,比如tomcat的webapps目录
–name为这个容器起个别名
tomcat:test表示启动的容器使用的镜像

5.常用命令
docker镜像查看
docker images
docker容器查看
docker ps -a
docker实例查看
docker ps
- 没有指定容器的名字那么会随机生成。
(个人理解) - 镜像第一次启动创建了容器,容器启动产生了实例,当实例停止运行就成为了容器。
- 镜像定义了一个容器的环境
- 容器是实例停止运行时的载体
- 容器启动就是实例
- 实例可以认为一个运行的真机
- 容器是一个关机的机器
- 镜像就是机器的配置
docker停止实例、启动容器
docker start $id|$name docker start tom_zh
与实例进行交互
docker exec -it $id|$name /bin/bash docker exec -it tomcat_test /bin/bash
查看实例的输出(日志)
docker logs -f $id|$name docker logs -f tomcat_test
docker logs -f等价于tail -f
可以ctrl+c活着ctrl+z退出


停止一个实例
docker stop $id|$name docker stop tomcat_test
- 对于tomcat_test这个容器,随时可以启动或者终止。
删除容器
docker ps -a docker rm $id|$name
删除镜像
docker images docker rmi $id|$name
6.docker卸载
1
2
yum list installed|grep docker
yum remove docker-**** -y
yum list installed|grep docker 列出docker相关的包
yum remove docker-** 移除docker相关的包








