在这篇文章中,我们将会学习关于Docker的一些知识,如何使用Docker部署Apache httpd服务,并且共享到Docker Hub上面去。首先,我们学习怎样拉取和使用Docker Hub里面的镜像,然后在一个Fedora 22的镜像上交互式地安装Apache,之后我们将会学习如何用一个Dockerfile文件来以一种更快,更优雅的方式制作一个镜像。最后,我们将我们创建的镜像发布到Docker Hub上,这样以后任何人都可以下载并使用它。
安装并初体验Docker 运行Docker,你至少需要满足这些:
•你需要一个64位的内核,版本3.10或者更高
使用dnf安装docker
1.dnf update && dnf install docker
检查安装
1.docker info
1.docker version
以守护进程方式启动Dcoker
1.docker -d
1.chkconfig docker on
1.dockr run -t busybox /bin/echo "hello world" 如果Docker不能在你的系统里找到本地的Busybox镜像,她就会自动从Docker Hub里拉取镜像,正如你可以看下如下的快照:
Hello world with Busybox 再次尝试相同的命令,这次由于Docker已经有了本地的Busybox镜像,你将会看到的全部就是echo的输出:
1.docker run -t busybox /bin/echo "hello world"
1.docker run -it busybox /bin/sh
交互式地Docker化Apache
1.docker pull fedora:22
1.docker run -d -t fedora:22/bin/bash 1.docker ps
angry_noble是docker分配给我们容器的名字,所以我们来连接上去:
1.docker attach angry_noble
安装Apache
1.dnf -y update && dnf -y install httpd && dnf -y clean all 我们需要修改httpd.conf的唯一地方就是ServerName,这会使Apache停止抱怨
1.sed -i.orig 's/#ServerName/ServerName/'/etc/httpd/conf/httpd.conf 为了使Apache运行为独立模式,你必须以环境变量的格式提供一些信息,并且你也需要创建这些变量里的目录,所以我们将会用一个小的shell脚本干这个工作,当然也会启动Apache 1.vi /etc/httpd/run_apache_foreground --------------------------------------------------------------------------------
1.#!/bin/bash
1.dnf -y install git && git clone https://github.com/gaiada/run-apache-foreground.git && cd run-apach* && ./install && dnf erase git 保存你的容器状态 你的容器现在准备好运行Apache,是时候保存容器当前的状态为一个镜像,以备你需要的时候使用。 为了离开容器环境,你必须顺序按下 Ctrl+q 和 Ctrl+p,如果你仅仅在shell执行exit,你同时也会停止容器,失去目前为止你做过的所有工作。 回到Docker主机,使用 docker commit 及容器名和你想要的仓库名字/标签:
1.docker commit angry_noble gaiada/apache
1.docker stop angry_noble 运行并测试你的镜像 最后,从你的新镜像启动一个容器,并且重定向80端口到该容器:
1.docker run -p 80:80-d -t gaiada/apache /etc/httpd/run_apache_foreground
在容器里运行的Apache默认页面
使用Dockerfile Docker化Apache 首先,新建一个目录,在里面放Dockerfile文件,并进入该目录:
1.mkdir apachedf; cd apachedf
1.FROM Fedora:22
•FROM - 这告诉docker,我们将要使用Fedora 22作为基础镜像 现在,我们将要建立这个镜像,并为其添加tag gaiada/apachedf 1.docker build -t gaiada/apachedf:0.1.
使用 docker images 列出本地镜像,查看是否存在你新建的镜像:
1.docker images
1.docker run -t -p 80:80 gaiada/apachedf
发布你的镜像 创建帐号 为了能够在Docker Hub上推送你的镜像,你需要创建一个帐号。访问 https://hub.docker.com/account/signup/,填写下面的表格:
Docker Hub 注册页面 登录 输入下面的命令,接着输入你注册时提供的用户名,密码和邮箱
1.docker login 推送 推送镜像,使用 docker push [registry/]yourlogin/repositoryname[:tag]
1.docker push docker.io/gaiada/apachedf
Docker推送Apache镜像完成
结论
|