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

构建Nginx镜像

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

# docker pull centos
# mkdir /opt/nginx
# cd /opt/nginx/

在这里插入图片描述

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

在这里插入图片描述在这里插入图片描述

3.编辑 run.sh

# vi run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx
:wq

在这里插入图片描述
在这里插入图片描述

5.生成镜像

# docker build -t nginx:centos .   

在这里插入图片描述

6.启动容器进行测试

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

在这里插入图片描述

7.进入容器

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

在这里插入图片描述

8.检查

在这里插入图片描述
在这里插入图片描述

构建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        //解压软件包

加粗样式
若提示未找到命令,先安装 unzip 。
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

3、生成镜像

# docker build -t tomcat:centos .

在这里插入图片描述

4、运行容器并验证

# docker run --name tomcat01 -p 8081:8080 -it  tomcat:centos /bin/bash       //运行容器,将本地8081端口映射到容器的8080端口
[root@ad4b5b11f1ef /]#cd /usr/local/tomcat8/bin
[root@ad4b5b11f1ef bin]#./startup.sh      //容器中启动Tomcat

若提示拒绝访问,赋权即可。
在这里插入图片描述

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

在这里插入图片描述

构建MySQL镜像

1、下载镜像

# docker pull centos

在这里插入图片描述

2、创建工作目录

# mkdir /opt/mysql
# cd /opt/mysql/

在这里插入图片描述

3、创建Dockerfile文件

# vim Dockerfile

在这里插入图片描述

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

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐