使用Dockerfile搭建Apache

来源:互联网 发布:ubuntu自带gcc编译器 编辑:程序博客网 时间:2024/06/05 02:43
第一步:准备相关文件
1 文件结构图如下
[root@localhost apache_ubuntu]# lsDockerfile  run.sh  sample[root@localhost apache_ubuntu]# cd sample[root@localhost sample]# lsindex.html

2 Dockerfile的内容
[root@localhost apache_ubuntu]# cat Dockerfile# DockerfileFROM sshd:dockerfileMAINTAINER cakin24 20171124ENV DEBIAN_FRONTEND noninteractiveRUN apt-get -yq install apache2 && rm -rf /var/lib/apt/lists/*RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdataADD run.sh /run.shRUN chmod 755 /*.shRUN mkdir -p /var/lock/apache2 && mkdir -p /app && rm -rf /var/www/html/* && ln -s /app/ /var/www/html/COPY sample/ /appENV APACHE_RUN_USER www-dataENV APACHE_RUN_GROUP www-dataENV APACHE_LOG_DIR /var/log/apache2ENV APACHE_PID_FILE /var/run/apache2.pidENV APACHE_RUN_DIR /var/run/apache2ENV APACHE_LOCK_DIR /var/lock/apache2ENV APACHE_SERVERADMIN admin@localhostENV APACHE_SERVERNAME localhostENV APACHE_SERVERALIAS docker.localhostENV APACHE_DOCUMENTROOT /var/wwwEXPOSE 80WORKDIR /appCMD ["/run.sh"]

3 run.sh的内容
[root@localhost apache_ubuntu]# cat run.sh#!/bin/bash# start ssh service/usr/sbin/sshd &# start apache serviceexec apache2 -D FOREGROUND

4 index.html的内容
[root@localhost sample]# cat index.html<!DOCTYPE html><html><body><p>Hello, Docker! from cakin24</p></body></html>

第二步:创建镜像
[root@localhost apache_ubuntu]# docker build -t apache:ubuntu .

第三步:运行容器
docker run -d -P apache:ubuntu[root@localhost apache_ubuntu]# docker psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                          NAMES1a0d5230b850        apache:ubuntu       "/run.sh"                13 seconds ago      Up 11 seconds       0.0.0.0:32771->22/tcp, 0.0.0.0:32770->80/tcp   peaceful_ramanujanbb621aee1faa        e0265d74dcff        "/run.sh"                13 minutes ago      Up 13 minutes       0.0.0.0:32769->22/tcp, 0.0.0.0:32768->80/tcp   gracious_curie46de738e5ec8        adminer:latest      "entrypoint.sh doc..."   About an hour ago   Up About an hour    8080/tcp                                       mysql_adminer.1.nm6rqhtbfn5bdmnlf3a0l29im3b5df1875812        mysql:latest        "docker-entrypoint..."   About an hour ago   Up About an hour    3306/tcp                                       mysql_db.1.tt5o1xkaeuc9tkvl7e5uc6rge

第四步:测试容器
第五步:上传镜像到官网
[root@localhost apache_ubuntu]# docker tag apache:ubuntu cakin24/apache:ubuntu[root@localhost apache_ubuntu]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEcakin24/apache      ubuntu              137a9a91233a        12 minutes ago      293MBapache              ubuntu              137a9a91233a        12 minutes ago      293MB<none>              <none>              e0265d74dcff        25 minutes ago      293MB<none>              <none>              8886590a29a7        32 minutes ago      293MB<none>              <none>              d5fd6b7d12d4        About an hour ago   293MBsshd                dockerfile          24641d32c072        47 hours ago        276MBcakin24/sshd        dockerfile          24641d32c072        47 hours ago        276MBsshd                ubuntu              ac3169fe4fcf        47 hours ago        284MBubuntu              14.04               d6ed29ffda6b        6 days ago          221MBtomcat              latest              11df4b40749f        9 days ago          557MBadminer             <none>              faa9618a39a6        2 weeks ago         58.8MBmysql               latest              5709795eeffa        2 weeks ago         408MBhello-world         latest              725dcfab7d63        2 weeks ago         1.84kBclearlinux          latest              32685d114002        2 weeks ago         62.5MBalpine              latest              053cde6e8953        2 weeks ago         3.96MB[root@localhost apache_ubuntu]# docker loginLogin with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.Username: cakin24Password:Login Succeeded[root@localhost apache_ubuntu]# docker push cakin24/apache:ubuntu