文章

Docker学习

本文详细介绍在CentOS环境下使用Docker搭建Tomcat环境的全过程,包括Docker安装、Dockerfile创建、镜像构建、容器启动及常用命令操作。

Docker学习

文章信息

  • 原文链接: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解压后的文件。

在这里插入图片描述
其中test中放的就是Dockerfile.

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

在这里插入图片描述
exit退出,在实例内可以认为在一个单独的机器内。

  • 查看实例的输出(日志)

    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相关的包

本文由作者按照 CC BY 4.0 进行授权