docker入门(centos7.2安装docker并使用Dockerfile做一个自己的tomcat镜像) - Go语言中文社区

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查看拉取到本地的所有镜像。

二、Docker常见的命令

1、镜像命令

docker images:列出本地所有镜像

docker images -a:列出所有本地镜像,且包含中间层,比如你pull了一个tomcat镜像,实际上还会pull例如centos镜像等很多中间层的镜像

docker images -q:只列出镜像ID

docker search tomcat:从docker hub上查询镜像

docker pull tomcat:拉取镜像

docker rmi tomcat:删除本地镜像

docker rmi -f tomcat nginx centos:强制删除多个本地镜像

docker rmi -f $(docker images -q):类似于linux的管道,删除$表达式里的东西,也就是删除所有本地镜像

2、容器命令

docker run [OPTION] image [COMMAND] [ARGS]

docker run -it --name mycentos centos:启动容器,-i的意思是以交互模式运行容器,-t的意思是为容器重新分配一个终端,-i、-t常常同时使用

docker ps:列出所有正在运行的容器

docker ps -a:列出曾经和正在运行的容器

exit:容器停止并退出(如果你是以-it的方式启动容器并进入容器自己建的终端的话)

ctrl+P+Q:容器不停止并退出

docker start 容器ID:启动曾经运行过的容器

docker kill(或stop或restart) 容器ID:kill是强制关闭容器,等于断电,stop也是关闭容器,不过相当于正常关机

docker rm 容器ID:删除容器

docker rm -f 容器ID:强制删除

dokcer rm -f $(docker ps -a -q):全部删除

docker ps -a -q | xargs docker rm:全部删除

docker run -d centos:后台启动容器,注意,后台启动容器的话必须有一个前台进程,不然容器会直接自动关闭,也就是说如果只运行docker run -d centos的话容器会自己停止,因为centos镜像启动后没有一个前台进程,我们可以添加docker run -d centos /bin/sh -c "while true;do echo hello world;sleep 2;done",这样会有一个前台进程循环输出helloworld,容器就不会自动停止了。

docker logs -f -t --tail 容器ID:查看docker日志,-t是在日志里跟入时间戳,-f是跟随日志更新而更新,--tail+数字是显示最后数字行的日志。

docker top 容器ID:查看容器内进程

docker inspect 容器ID:查看容器细节

docker attach 容器ID:重新进入正在运行的容器

docker exec -t 容器ID ls -l  /temp:进入容器并执行ls -l /temp命令

docker cp 容器id:/tmp/test.txt /root:把容器内/tmp/test.txt复制到宿主机的/root下

docker run -p 宿主机端口:容器内端口:将容器内端口映射到宿主机的指定端口上

docker run -d /mnt/mfs/data:/tmp/data:添加容器数据卷,简单的说,就是将宿主机的/mnt/mfs/data和容器内的/tmp/data路径下的文件、文件夹同步

三、用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已经在容器中启动成功。

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u014627099/article/details/85264080
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-04-18 19:49:13
  • 阅读 ( 1985 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢