dockerfile 权限_【基础实战】Dockerfile构建Web

本文介绍了如何使用Dockerfile分别构建Nginx、Tomcat和MySQL的镜像,并通过详细步骤指导读者进行容器的启动与测试。内容涵盖下载基础镜像、创建工作目录、编写Dockerfile、生成镜像以及验证容器功能。同时,文章还提及了运维自动化、CI/CD、Kubernetes等相关技术。
摘要由CSDN通过智能技术生成
实验环境说明
本机IP地址:192.168.10.157构建mysql镜像时,验证的主机IP;192.168.10.149

构建Nginx镜像

1、下载基础镜像——centos镜像
docker pull centos
2、创建工作目录
mkdir /opt/nginxcd /opt/nginx/
3、创建并编写Dockerfile文件
vim Dockerfile

FROM centos
MAINTAINER this is nginx image 
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.gzRUN tar zxvf nginx-1.9.7.tar.gz
WORKDIR nginx-1.9.7RUN ./configure --prefix=/usr/local/nginx && make && make install
EXPOSE 80           //httpEXPOSE 443              //httpsRUN 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"]

d26f5a648d06bfde8671386a915996d1.png

4、编写执行脚本内容
vim run.sh#!/bin/bash/usr/local/nginx/sbin/nginx

e51405cfd2b6368814a7276da4b68109.png

5、生成镜像
docker build -t nginx:new .

docker images           //查看镜像

893454432048b57d867486206a9c3f10.png98c0a93b54db608e4289eed2fb35925c.png

6、启动容器进行测试
docker run -d -P nginx:new        //启动容器,-p随机指定宿主机端口映射容器中nginx服务相关端口docker ps -a      //查看容器   

dd6c81498eac834945edaed943be91c4.png

浏览器输入:http://192.168.10.157:32769/

073fba07bdcdf41bbcae08d1833eabbd.png

构建Tomcat镜像

1、创建工作目录,将相关软件包解压到工作目录下
mkdir /opt/tomcat     //创建工作目录
cp jdk-8u91-linux-x64.tar.gz /opt/tomcat/cp apache-tomcat-8.5.16.tar.gz /opt/tomcat/     //移动到工作目录

cd /opt/tomcat/tar zxvf jdk-8u91-linux-x64.tar.gz
tar zxvf apache-tomcat-8.5.16.tar.gz        //解压软件包
2、创建Dockerfile文件
vim Dockerfile

FROM centos
MAINTAINER this is tomcat image 
ADD jdk1.8.0_91 /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/binENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar
ADD apache-tomcat-8.5.16 /usr/local/tomcat8
EXPOSE 8080

4ce7954a6eea6453b6bba61d1f0ebbb0.png

3、生成镜像
docker build -t tomcat:centos .

3e3aba73cb3fdc3ffbc6dd13a52be5a1.png

4、运行容器并验证
docker run --name tomcat01 -p 80:8080 -it  tomcat:centos /bin/bash          //运行容器,将本地80端口映射到容器的8080端口

[root@643488fd23c4 bin]#cd /usr/local/tomcat8/bin[root@643488fd23c4 bin]#./startup.sh      //容器中启动Tomcat

bfd2069506ae47c5b5e9caa30483993f.png

浏览器输入:http://192.168.10.157/

99e1db0b798403b0fa16f745a8f221ed.png

构建MySQL镜像

1、下载镜像,建议使用centos6镜像
docker pull guyton/centos6

4e68aefc7840dc2531793d3733227c04.png

2、创建工作目录
mkdir /opt/mysqlcd /opt/mysql
3、创建Dockerfile文件
vim Dockerfile

FROM guyton/centos6
MAINTAINER this is msyql images 
RUN yum install 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 3306CMD ["mysqld_safe"]

af1a6b4e1ce9d0e73326e84857f971d8.png

4、生成镜像
docker build -t centos6:mysql .

docker images      //查看镜像

cc6a62eb29269d58922d913bbd65057f.png

5、运行容器并验证
docker run --name=mysqlserver -d -P centos6:mysql       //运行容器,随机指定本机端口映射容器mysql的端口

docker ps -a    //查看容器

c6c8f37203179c46fc496b41eec609a8.png

在装有mysql服务的主机上,或者在本机安装mysql服务,登录容器的mysql数据库进行验证
mysql -h 192.168.10.157 -u root -P 32770 -pabc123

9d6552cbd2cda31c9bbdfc23af0b099f.png


欢迎关注运维自研堂订阅号,运维自研堂是一个技术分享平台,主要是运维自动化开发:linux、python、django、saltstack、tornado、bootstrap、redis、golang、docker、etcd、k8s、ci/cd、devops等经验分享。

  • 容器平台自动化CI/CD流水线实操

  • 谷歌开源 Kubernetes 原生 CI/CD 构建框架 Tekton

  • 架构师是怎么炼成的

  • IPv6时代对业务的挑战

  • 如何打造一个安全稳定高效的容器云平台

  • 深入理解无服务器架构(Faas/Serverless)

  • CI/CD 场景价值

  • 云原生架构及设计原则

  • Jira与Zabbix结合

  • 【Zabbix】告警事件归档与提取

  • 【HMonitor】Zabbix告警管理平台

  • Zabbix 告警收敛

  • Zabbix v3.0微信报警及API使用

  • zabbix v3.0安装部署及使用

  • Web权限设计

  • 搭建 kubernetes 容器编排平台

  • 区块链入门教程

  • 基于Gogs+Drone搭建的私有CI/CD平台

  • WEB架构设计心得

  • Docker与CI/CD

  • 【实战篇】Docker的CI/CD流水线实践

  • 基于 Harbor 搭建 Docker 私有镜像仓库

  • 利用helm部署应用到kubernetes

开源    创新     共享

投稿&商务合作

Mail:idevops168@163.com       QQ:785249378     微信:Idevops001

a4295fc7602d1110fac4b42cf6a6835c.gif

牛人并不可怕,可怕的是牛人比我们还努力!

28273d818693989806921dc7c0362899.png

长按图片,识别加入我们!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值