docker入门(centos7.2安装docker并使用Dockerfile做一个自己的tomcat镜像)

        作为一个程序员,肯定饱受过开发环境的摧残,docker这个越来越火的容器让解决这一问题成为了现实。好了,docker是啥、解决了啥问题就不多说了,直接进入正题。

        首先说一下环境,我是在自己的windows上新建了个centos7.2的虚拟机,虚拟机IP是192.168.119.119,然后我会在虚拟机上安装一个docker,并生成一个自己的tomcat镜像并运行。

        一、centos7下安装docker

        1.首先安装一下gcc库,虽然不安可能也不会有啥影像,但是玩linux的最好还是把这玩意安了吧,命令如下:

yum -y install gcc-c++

        2.把以前的docker相关的东西都删了,如果以前没安装过docker相关的东西就不需要这一步了,命令如下:

yum remove docker docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux
docker-engine-selinux docker-engine

        3.安装yum相关依赖,命令如下:yum install -y yum-utils device-mapper-persistent-data lvm2

        4.启用阿里云仓库,不然你yum安装比较大的软件会特别慢(和后边的启用阿里云镜像加速不同,镜像加速只是为了用docker拉镜像的时候快,而上边的操作是为了yum下载快),然后更新一下yum源,命令如下:

启用阿里云仓库命令:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新命令:yum makecache fast

        5.安装docker,命令如下:yum -y install docker-ce

        6.开启docker服务,命令如下:systemctl start docker,启动之后用docker --version即可查看docker版本,也说明安装成功

        7.启用阿里云镜像加速。首先要进阿里云加速器的申请网页:https://cr.console.aliyun.com/#/accelerator,这样你可以获得一个,如下图:

之后在/etc下创建docker文件夹,命令:mkdir /etc/docker。在这个文件夹下创建一个daemon.json文件,命令如下:vim /etc/docker/daemon.json。在daemon.json文件中输入如下json,里边的那个网址就是上图里阿里云分给你的那个加速器地址:
{
  "registry-mirrors":["https://XXXXX.mirror.aliyuncs.com"]
}

最后载入这个配置,并重启docker,命令如下:

载入:systemctl daemon-reload
重启:systemctl restart docker

        8.OK,大功告成,可以拉个镜像看看成不,拉取命令:docker pull centos。这个命令从阿里云上把最新版centos镜像拉下来,拉下来后可以用docker images查看拉取到本地的所有镜像。

       

        二、用Dockerfile创建一个我们自己的tomcat镜像

        首先创建一个文件夹:/data/mydockerfile/tomcat9,从网上下个jdk1.8安装包和一个tomcat9安装包放到这个目录下,然后在这个目录下创建一个Dockerfile文件,如下:

vim开始编辑Dockerfile文件,我把想说的都写到注释里了,文件内容如下:

#该镜像基于centos
FROM centos
#把java和tomcat添加到镜像中
ADD jdk-8u181-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.14.tar.gz /usr/local
#在基于centos的镜像中安装vim编辑器
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_181
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.14
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.14
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE 8080
#启动时运行tomcat
CMD /usr/local/apache-tomcat-9.0.14/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.14/bin/logs/catalina.out

然后在改目录下运行如下命令打成镜像(别忘了最后的.):docker build -t mytomcat9 .

这时候用docker images可以看到本地已经有一个mytoncat9镜像了,我们运行该镜像,命令如下:

docker run -d -p 9999:8080 --name myt9 mytomcat9

这个命令中-d代表后台运行,-p 9999:8080代表将docker里的8080端口映射到外部的9999端口,--name指镜像启动生成的容器名字叫myt9,最后的mytomcat9是镜像名,最后我们在windows的浏览器上访问192.168.119.119:9999(最开始说的虚拟机IP)即可访问到tomcat默认的页面,也代表tomcat已经在容器中启动成功。

猜你喜欢

转载自blog.csdn.net/u014627099/article/details/85264080