docker入门&构建tomcat镜像

docker入门&构建tomcat镜像

文章目录

  • docker入门&构建tomcat镜像
    • 查看进程命令
    • docker安装及启动
    • docker镜像的管理
    • 使用docker运行容器
    • 批量管理docker容器
    • 使用commit构建自定义镜像
    • 使用Dockerfile构建tomcat镜像

查看进程命令

ps -auxww
#a选项显示出所有运行进程的内容,而不仅仅是您的进程
#u选项显示出进程所归属的用户名字以及内存使用
#x选项显示出后台进程
#ww 选项表示为 ps(1) 把每个进程的整个命令行全部显示完,而不是由于命令行过长就把它从屏幕上截去。

docker安装及启动

环境:Centos 7.6(试过7.0版本,会有问题)

安装docker

yum install docker -y

docker版本的查看

docker --version

docker服务的管理

systemctl start docker #开启
systemctl stop docker #关闭
systemctl restart docker #重启

docker服务的开机启动

systemctl enable docker #开启开机自启动
systemctl disable docker #关闭开机自启动

docker镜像的管理

查看已有镜像

docker images  #查看镜像 

搜索centos镜像

docker search centos7

docker入门&构建tomcat镜像_第1张图片
下载centos镜像

docker pull docker.io/openshift/base-centos7

保存生成镜像文件,使用docker save命令

docker save docker.io/openshift/base-centos7 >/tmp/centos.tar

移除镜像,使用docker rmi进行移除

docker rmi docker.io/openshift/base-centos7 #移除镜像 

6: 导入镜像自己的镜像

docker load < /tmp/centos.tar
docker tag 484 centos7:latest #导入后的docker镜像是没有名字的,需要重新命名

使用docker运行容器

运行并进入容器

docker run -it xxxx(镜像名) /bin/bash		
#不是Centos似乎不需要/bin/bash

以后台进程启动容器

docker run -d centos7
//作为后台启动后就会立即退出

让容器永久运行的条件

  1. docker run -d 后台运行
  2. 要有一个永久运行的程序

以后台进程启动容器,启动一个永久运行的程序

docker run -d centos7 /bin/bash -c 'while true;do echo hello;sleep 3;done'
#'while true;do echo hello;sleep 3;done'一个死循环的脚本,达到永久运行的目的

查看容器里的运行日志

docker logs CONTAINER ID
#docker ps可获得容器id

进入后台运行的容器

docker exec -it CONTAINER ID /bin/bash(启动centos时需要加ID后面的内容)
#进入该容器后即使退出程序仍然会继续运行

停止后台运行的容器

docker stop CONTAINER ID	#停止容器
#docker kill CONTAINER ID	#关闭该容器
docker rm CONTAINER ID	#删除该容器

批量管理docker容器

docker ps |awk '{print $1}'|grep -v CONTAINER	#输出正在运行的CONTAINER ID 
#awk 行处理
#$1 每行第一个字段
#grep -v 排除输出结果

批量操作运行的容器

docker ps |awk '{print $1}'|grep -v CONTAINER|while read line;do
docker xxxx $line
done
for line in `docker docker ps |awk '{print $1}'|grep -v CONTAINER`;do
	docker xxxx $line
done

使用commit构建自定义镜像

使用docker commit利用运行的容器来制作自定义镜像

返回宿主机,查看要制作镜像的id(不能通过docker images中的id构建,否则制作出来的和初始的镜像一样)

在这里插入图片描述

docker commit CONTAINER_ID(如9117cc06xxx) NAME(如docker_with_tomcat) 

查看制作的镜像信息

docker inspect NAME

使用Dockerfile构建tomcat镜像

新建目录/docker/tomcat

需要文件

docker入门&构建tomcat镜像_第2张图片

jdk要从官网下载好传到Centos上

install.sh脚本用来安装Java和tomcat

Dockerfile用于构建镜像

CentOS-Base.repo是本机/etc/yum.repos.d/CentOS-Base.repo文件复制过来的,为了防止yum源不能用

install.sh内容

yum install -y wget tar
cd /usr/local/src/
tar -zxvf jdk-8u201-linux-x64.tar.gz
mv jdk1.8.0_201 /usr/local/
#/usr/local/jdk1.8.0_201/bin/java -version

#配置java环境变量
echo 'JAVA_HOME=/usr/local/jdk1.8.0_201' >>/etc/profile
echo 'PATH=$PATH:$JAVA_HOME/bin' >>/etc/profile
echo 'CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH' >>/etc/profile
source /etc/profile

wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.16/bin/apache-tomcat-9.0.16.tar.gz
tar -zxvf apache-tomcat-9.0.16.tar.gz
mkdir -p /usr/local/tomcat
mv apache-tomcat-9.0.16 /usr/local/tomcat9

Dockerfile

在这里插入图片描述

FROM docker.io/openshift/base-centos7	#已有镜像
MAINTAINER HengTian hengtian.online
COPY jdk-8u201-linux-x64.tar.gz /usr/local/src/jdk-8u201-linux-x64.tar.gz
COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
COPY install.sh /tmp/install.sh
RUN sh /tmp/install.sh; \rm -rf /usr/local/src/*	#删除jdk的压缩包等

准备完毕后,在/docker/tomcat目录下运行命令

docker build -t my_tom .	#注意.号

启动容器测试

docker run -d my_tom -c /bin/bash -c 'source /etc/profile;/usr/local/tomcat9/bin/catalina.sh run'
#source /etc/profile;	使环境变量生效,虽然之前的install.sh使用了该命令,但是没有效果...
#/usr/local/tomcat9/bin/catalina.sh run 使tomcat前台运行,以保证后台启动的镜像不会死亡

启动并测试

docker入门&构建tomcat镜像_第3张图片docker入门&构建tomcat镜像_第4张图片

你可能感兴趣的:(Java)