使用Dockerfile搭建Apache,dockerfileapache
使用Dockerfile搭建Apache,dockerfileapache
第一步:准备相关文件 1 文件结构图如下[root@localhost apache_ubuntu]# ls
Dockerfile run.sh sample
[root@localhost apache_ubuntu]# cd sample
[root@localhost sample]# ls
index.html
2 Dockerfile的内容
[root@localhost apache_ubuntu]# cat Dockerfile
# Dockerfile
FROM sshd:dockerfile
MAINTAINER cakin24 20171124
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
RUN mkdir -p /var/lock/apache2 && mkdir -p /app && rm -rf /var/www/html/* && ln -s /app/ /var/www/html/
COPY sample/ /app
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/apache2.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"]
3 run.sh的内容
[root@localhost apache_ubuntu]# cat run.sh
#!/bin/bash
# start ssh service
/usr/sbin/sshd &
# start apache service
exec 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 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a0d5230b850 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_ramanujan
bb621aee1faa e0265d74dcff "/run.sh" 13 minutes ago Up 13 minutes 0.0.0.0:32769->22/tcp, 0.0.0.0:32768->80/tcp gracious_curie
46de738e5ec8 adminer:latest "entrypoint.sh doc..." About an hour ago Up About an hour 8080/tcp mysql_adminer.1.nm6rqhtbfn5bdmnlf3a0l29im
3b5df1875812 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 images
REPOSITORY TAG IMAGE ID CREATED SIZE
cakin24/apache ubuntu 137a9a91233a 12 minutes ago 293MB
apache 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 293MB
sshd dockerfile 24641d32c072 47 hours ago 276MB
cakin24/sshd dockerfile 24641d32c072 47 hours ago 276MB
sshd ubuntu ac3169fe4fcf 47 hours ago 284MB
ubuntu 14.04 d6ed29ffda6b 6 days ago 221MB
tomcat latest 11df4b40749f 9 days ago 557MB
adminer <none> faa9618a39a6 2 weeks ago 58.8MB
mysql latest 5709795eeffa 2 weeks ago 408MB
hello-world latest 725dcfab7d63 2 weeks ago 1.84kB
clearlinux latest 32685d114002 2 weeks ago 62.5MB
alpine latest 053cde6e8953 2 weeks ago 3.96MB
[root@localhost apache_ubuntu]# docker login
Login 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: cakin24
Password:
Login Succeeded
[root@localhost apache_ubuntu]# docker push cakin24/apache:ubuntu
评论暂时关闭