dockerfile nginx+tomcat+mysql_使用Dockerfile构建镜像(Nginx,Tomcat,MySQL)

使用Dockerfile构建镜像(Nginx,Tomcat,MySQL)

构建Nginx镜像

1.下载基础镜像,创建目录及文件

# docker pull centos

# mkdir /opt/nginx

# cd /opt/nginx/

a61a848e548fb97f562301f8fceb35dd.png

2.编辑 Dockerfile

# vi Dockerfile

FROM centos

MAINTAINER virtue

RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel

RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz

RUN tar zxvf nginx-1.9.7.tar.gz

WORKDIR nginx-1.9.7

RUN ./configure --prefix=/usr/local/nginx && make && make install

EXPOSE 80 //http

EXPOSE 443 //https

RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf //关闭守护进程

WORKDIR /opt/nginx

ADD run.sh /run.sh //将宿主机中的run.sh添加到容器中

RUN chmod 755 /run.sh

CMD ["/run.sh"]

:wq

7c3a033f167f6aeb70b59e54c2f32c0b.pnge704890c4a2781d8202ba237d55b7aa4.png

3.编辑 run.sh

# vi run.sh

#!/bin/bash

/usr/local/nginx/sbin/nginx

:wq

51ac06b0487e775a14b2c05db63ffb6c.png

e59779dd52cd3913f56d72781042cd58.png

5.生成镜像

# docker build -t nginx:centos .

f5830102f1fe7cc140e0eb9b76eaf155.png

6.启动容器进行测试

# docker run -d -P nginx:centos //启动容器,-P 随机指定宿主机端口映射容器中nginx服务相关端口

# docker ps -a //查看容器

9d1cf5f9cc219ad1dada29d1c975dffc.png

7.进入容器

# docker exec -it xxx /bin/bash//xxx :容器名

74030a3a23a8f4af2afd2051be0310cc.png

8.检查

c3047155852d82ef96c7c504cff1e7ab.png

37c6f3e9849155e2cc337e7dd73c5aaa.png

构建Tomcat镜像

一般我习惯在根目录下新建一个 soft 的文件夹,所有上传的文档都会放在这个文件夹下,方便记忆,也可以做个备份。

1、创建工作目录,将相关软件包解压到工作目录下

# mkdir /opt/tomcat //创建工作目录

# cp jdk-8u201-linux-x64.tar.gz /opt/tomcat/

# cp apache-tomcat-8.5.42.zip /opt/tomcat/ //移动到工作目录

# cd /opt/tomcat/

# tar zxvf jdk-8u201-linux-x64.tar.gz

# unzip apache-tomcat-8.5.42.zip //解压软件包

1a3c60957c0d26a734fb37c7f5b99f9f.png

若提示未找到命令,先安装 unzip 。

751d0b63ef16e5af6ace4bf519d79d93.png

1c1c57df0af02b21ca5ee3b0ec092a4e.png

2、创建Dockerfile文件

# vim Dockerfile

FROM centos

MAINTAINER virtue

ADD jdk1.8.0_201 /usr/local/java

ENV JAVA_HOME /usr/local/java

ENV JAVA_BIN /usr/local/java/bin

ENV JRE_HOME /usr/local/java/jre

ENV PATH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin

ENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar

ADD apache-tomcat-8.5.42 /usr/local/tomcat8

EXPOSE 8080

:wq

5770012cb6a42f3fe2aacd492c11e4bd.png

79d20e3d902a72540afdcf4cfe296846.png

3、生成镜像

# docker build -t tomcat:centos .

bbb03c5414aa83f62f3af5621f0e15e5.png

4、运行容器并验证

# docker run --name tomcat01 -p 8081:8080 -it tomcat:centos /bin/bash //运行容器,将本地8081端口映射到容器的8080端口

[[email protected] /]#cd /usr/local/tomcat8/bin

[[email protected] bin]#./startup.sh //容器中启动Tomcat

若提示拒绝访问,赋权即可。

6bf186c3947b5d0d450454b62523d714.png

浏览器输入:http://192.168.0.244:8081/

a0518bf7848d082fcd5b0ee451785a25.png

构建MySQL镜像

1、下载镜像

# docker pull centos

9e69b7cb11f39bb9873a4ad173029bc2.png

2、创建工作目录

# mkdir /opt/mysql

# cd /opt/mysql/

b569cc8133d0c681cf1051eab5fd0d70.png

3、创建Dockerfile文件

# vim Dockerfile

48047f472c2938ca7d96046944b7c35e.png

FROM centos

MAINTAINER virtue

RUN yum install -y mysql mysql-server

RUN /etc/init.d/mysqld start &&\

mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'abc123';" &&\

mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'abc123';" //root在本地,非本地登录时都使用abc123密码

EXPOSE 3306

CMD ["mysqld_safe"]

:wq

06e013c91843d5ce2bd29feeb5724603.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值