docker之web容器创建(apache nginx tomcat LAMP CMS)

1.apache容器的创建:

   1.1 官方提供了hpptd的Apache镜像,作为web的基础镜像

        编写Dockerfile文件

FROM httpd:2.4
COPY ./publish-html /usr/local/apache2/htdocs/

   创建项目 目录public-html  并在此目录下创建index.html文件

<!DOCTYPE html>
<html>
<body>
<p>Hello, Docker!</p>
</body>
</html>

构建自定义镜像:docker build -t apache2-image

构建完成。使用docker run 指令运行镜像
docker run -it --rm --name apache-container -p 80:80 apache2-image

这样就构建完成 使用docker images就可以看到该镜像了 使用docker ps -a查看运行情况

也可以不创建自定义镜像,直接通过映射目录方式直接运行apahce容器

docer run -it --rm --name my-apache-app -p 80:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4  打开浏览器即可

 

2.自定义dockerfile文件---apache

   2.1创建apache_ubuntu工作目录,在其中创建Dockerfile文件,run.sh文件和sample目录

       mkdir apache_ubuntu && cd apache_ubuntu

      touch Dockerfile run.sh

     mk sample

Dockerfile内容如下:

FROM sshd:Dockerfile
#设置继承自用户创建的sshd镜像
MAINTAINER docker_user (user@docker.com)
#创建者基本信息
#设置环境变量,所有操作都是非交互式的
ENV DEBIAN_FRONTEND noninteractive
#安装
RUN apt-get -yq install apache2&&\
    rm -rf /var/lib/apt/lists/*
RUN echo "Asia/Shanghai" > /etc/timezone && \
    dpkg-reconfigure -f noninteractive tzdata

#添加脚本并设置权限
ADD run.sh /run.sh
RUN chmod 755 /*.sh
#注意这里要改系统的时区设置,因为在web应用中经常会使用到时区这个系统变量,默认的ibuntu会让你的应用程序发生不可思议的效果
#添加一个示例的web站点,删掉默认安装在apache文件夹里面的文件。并将用户添加的示例用软连接链接到/var/html目录下面
RUN mkdir -p /var/lock/apache2 &&mkdir -p /app && rm -fr /var/www/html && ln -s /app /var/www/html
COPY sample/ /app
#设置apache相关的一些变量,在容器启动的审核可以使用-e参数替代
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_PID_FILE /var/run/apache.pid
ENV APACHE_RUN_DIR /var/run/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_SERVERADMIN admin@localhost
ENV APACHE_SERVERNAME localhost
ENV APACHE_SERVERALIAS docker.localhost
ENV APACHE_DOCUMENTROOT /var/www
EXPOSE 80
WORKDIR /app
CMD ["/run.sh"]

在sample目录下创建index.html文件 内容参考上面  run.sh 内容如下:

$cat run.sh
#!/bin/bash
#若要启动ssh需要下面的命令
/usr/sbin/sshd &
exec apache2 -D FOREGROUND

使用docker build -t apache:ubuntu创建镜像  docker run -d -P(-p 1002:22 -p 8000:80) apache:ubuntu启动镜像 ,启动后会发现 镜像继承了父类镜像的端口号 但是没有启动父类镜像(在未加入ssh启动命令前)

映射本地目录到容器内的目录替代显示内容

docker run - i -d -p 80:80 -p 103:22 -e APACHE_SERVERNAME=test -v 'pwd' /www:/var/www:ro apache:ubuntu

在当前目录下创建www目录。并放上自定义的页面index..html 内容自定义。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值