- 创建一个自定义的tomcat9镜像
⑴创建一个存放dockerfile的目录
⑵在这个目录下创建一个test1.txt文件(这个文件是用来演示cp命令的,
完成宿主机到容器的拷贝)
并且我们在这个目录下准备好jdk和tomcat的压缩包,后面有用
⑶下面我们开始在这个目录下编写Dockerfile文件
dockerfile文件内容:
#基于我们从阿里云下载下来的centos基础镜像 FROM centos #定义维护者的信息 MAINTAINER kgf<[email protected]> #把宿主机当前上下文的test1.txt文件拷贝到容器/usr/local/路径下 COPY test1.txt /usr/local/test1Copytocontainer.txt #把java与tomcat添加到容器中 ADD jdk-8u191-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-9.0.12.tar.gz /usr/local/ #安装vim编辑器 RUN yum -y install vim #设置工作访问时候的workdir路径,登录落脚点 ENV MY_PATH /usr/local WORKDIR $MY_PATH #配置java与tomcat环境变量 ENV JAVA_HOME /usr/local/jdk1.8.0_191 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.12 ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.12 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin #容器运行时监听的端口 EXPOSE 8080 #启动时运行tomcat,下面的三种方式随便一种都可以使用 #ENTRYPOINT ["/usr/local/apache-tomcat-9.0.12/bin/startup.sh"] #CMD ["/usr/local/apache-tomcat-9.0.12/bin/catalina.sh","run"] CMD /usr/local/apache-tomcat-9.0.12/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.12/bin/logs/catalina.out
⑷执行dockerfile文件
命令:docker build -f /tmp/kgf/tomcat9/Dockerfile -t kgftomcat9:1.1 .
⑸运行镜像生成镜像的实例容器
命令如下:docker run -d -p 9080:8080 --name myt9 -v /tmp/kgf/tomcat9/test:/usr/local/apache-tomcat-9.0.12/webapps/test -v /tmp/kgf/tomcat9/tomcat9logs:/usr/local/apache-tomcat-9.0.12/logs --privileged=true kgftomcat9:1.1 #注释: -d:表示后台运行 -p 宿主机端口号:容器内运行的软件程序端口 --->表示将容器内端口映射到宿主机,对外开放 --name +容器名称 --->为运行启动的容器起一个别名 -v +宿主机路径:容器内路径 --->表示为宿主机和容器添加关联数据卷 --privileged=true ---->这是为了防止数据卷没有读写权限 kgftomcat9 ---->这个是镜像的名称
查看运行效果:
我们可以在外面查看容器类的目录:
-
下面在自定义的tomcat9上发布web项目演示
⑴因为我们在容器内创建关联的数据卷目录是test命令,所以我们就将一个
简单的名称为test的web项目部署到容器内。
a:注意
因为宿主机的test目录是和容器类的test关联目录,所以我们只需要将
项目内文件传递到宿主机内即可。
b:查看容器内test目录下文件
⑵重新启动运行的容器
效果(完美):
-
docker上安装mysql
⑴从阿里云上拉取5.6版本mysql
命令:docker pull mysql:5.6
⑵使用镜像运行容器
命令:docker run -p 12345:3306 --name mysql -v /tmp/mysql/conf:/etc/mysql/conf.d -v /tmp/mysql/logs:/logs -v /tmp/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6 命令说明: -p 12345:3306 : 将主机的12345端口映射到docker容器的3306端口 --name mysql :自定义运行服务的名字 -v /tmp/mysql/conf:/etc/mysql/conf.d :将主机/tmp/mysql/conf目录挂载到容器的/etc/mysql/conf.d -v /tmp/mysql/logs:/logs :将主机/tmp/mysql/logs目录挂载到容器的/logs -v /tmp/mysql/data:/var/lib/mysql :将主机/tmp/mysql/data目录挂载到容器的/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 :初始化root用户的密码 -d mysql:5.6 后台运行mysql5.6程序
⑶执行效果:
⑷进入容器
⑸下面我们同宿主机上的工具链接一下试试
-
将我们的镜像提交到阿里云上
⑴查看镜像
⑵首先运行mycentos镜像容器,并且提交一个新的版本
⑶首先登陆到阿里云服务器上
⑷创建镜像仓库
⑸下面我们需要将镜像推送到阿里云
a:首先我们链接登陆阿里云
b:对上传到阿里云上标签的处理
c:下面就是向阿里云上push了
d:下面我们可以到阿里云上去搜索一下
e:可以到阿里云官网直接搜索,因为是公开的,这里我们就不演示了,可以直接搜索kgfbuy/mycebtos
-
那么我们再演示一下如何从阿里云下载下来
a:首先我们先把本地的删除
b:下载下来
命令:docker pull registry.cn-qingdao.aliyuncs.com/kgfbuy/mycentos:1.2.1
上一篇:docker知识点相关笔记四
文章目录
docker知识点相关笔记五
猜你喜欢
转载自blog.csdn.net/K_520_W/article/details/83688496
今日推荐
周排行