Docker容器中运行一个Apache服务器

来源:互联网 发布:电脑桌面录屏软件 编辑:程序博客网 时间:2024/06/05 17:56
  • 前提条件安装好Docker的Linux环境
    可以看本文Centos7通过Dockerfile运行hello world

  • 1.在根目录下创建一个test目录,并编写Dockerfile。
    需在root用户下进行操作
    # sudo su - 切换成root用户
    # cd / 进入根目录
    # mkdir test 创建一个test目录
    # cd /test 进入test目录
    # vi Dockerfile编辑Dockerfile文件,如没有该文件vi会自动创建该文件

    # 此处是必须有的,基于ubuntu16.04的镜像开始FROM ubuntu:16.04# 作者信息MAINTAINER MarkCOPY apt.conf /etc/apt/apt.conf# apt.conf是apt的代理配置文件,如你在封闭式的环境下开发就需要创建好apt.conf文件,样式与你Dockerfile的根镜像的系统中的apt.conf样式一样,如此处我的根镜像为ubuntu系统,我编写好代理文件复制到test目录下,注意Dockerfile操作的文件都是基于当前目录下进行的。# 不是封闭式的环境无需此步COPY apt.conf操作# 因无法保证此处获取的ubuntu16.4的apt-get的源是最新的,需更新apt-getRUN apt-get update -y# 通过apt-get安装apache2RUN apt-get install apache2 -y# 最后暴露80端口EXPOSE 80# Dockerfile中开头为#号的为注释,至此Dockerfile编写完成

    2.建立Docker镜像
    docker build /test/ -t apache2 docker会自动获取该路径下名为Dockerfile的文件并开始建立镜像名为apache2的镜像
    此时docker开始读取Dockerfile并下载所需的软件

完成build操作后。。。
# docker images 将会列出此时系统中所有你建立过的镜像
运行该镜像并运行这个容器
# docker run -it -p 4004:80 apache2 /bin/bash
-it是互动模式,启动该容器并进入该容器中
-p 4004:80此处为主机映射docker的80端口
apache2为镜像名也可以为镜像ID通过# docker images查看的有镜像id这一栏
/bin/bash互动模式并进入bash命令列
此时进入容器的标注是#后前有一串字符串
启动apache服务器
#root@cacae3f5bfc6:/#/etc/init.d/apache2 restart

  • 此时你可通过访问http://主机ip:4004访问到apache的主页
    注意不是docker容器的ip此时访问主机的ip与4004端口会自动映射到我们刚刚启动的docker容器

新开一个终端,可通过# docker ps查看主机启动的docker容器

原创粉丝点击