如何自动地建造和管理客户Docker映像文件
使用Dockerfiles文本文件可以自动地创建Docker image
Docker file文件包含各种建立和配置特定的容器信息。以下说明是最常用的,其中有一些是强制性的:
FROM ==Docker file的第一个指令,说明:Docker 来自那个映像文件,这里使用一个标签来指明。
例如: FROM ubuntu:14.04
MAINTAINER == 构建映像文件的作者
RUN ==说明映像文件创建后、运行那些命令
CMD ==Docker image开始时,运行的命令。
ENTRYPOINT == 另一个 CMD 作为映像文件的主要命令
EXPOSE ==说明容器运行时监听的网络端口,容器端口是不能使用主机的缺省端口
ENV == 设置容器的环境变量.
ADD = 文件或目录的复制原(files, directories 或 files from URLs)
步骤1:创建或写入dockerfile库
1。首先,创建一个dockerfile库,用于创建其他映像。在/var分区建立一个空目录,构建最新的容器映像文件。
# mkdir -p /var/docker/ubuntu/apache
# touch /var/docker/ubuntu/apache/Dockerfile
2. 其次编辑文件:
# vi /var/docker/ubuntu/apache/Dockerfile
dokerfile摘录
FROM ubuntu
MAINTAINER your_name
RUN apt-get -y install apache2
RUN echo “Hello Apache server on Ubuntu Docker” > /var/www/html/index.html
EXPOSE 80
第一行指明建造Ubuntu映像文件,因没有提供标签,使用最新的Docker Hub。
第二行中,添加了创建映像文件的名字和电子邮件。接下来的两行为:运行映像文件和安装Apache守护进程及 echo 一些文字到默认的Apache Web页。
EXPOSE行指明Docker容器侦听端口80,但端口不对外透明。最后一行指明在容器启动后运行Apache服务
3.使用以下命令开始创建发布的映像,将创建一个命名为Ubuntu Apache的局部映像,基于之前的dockerfile,如图所示:
# docker build -t ubuntu-apache /var/docker/ubuntu/apache/
4. 使用以下命令列出所有docker可用映像:
# docker images
步骤二、运行容器和访问局域网apache服务
5。为了连续运行容器(后台),并访问局域网中的主机或其他远程机的容器服务(端口),运行下面的命令:
# docker run -d -p 81:80 ubuntu-apache
选项 -d 后台运行 ubuntu-apache 容器守护进程。选项 -p 指定 80 端口至本地端口 81.在局域网外只能通过端口81,访问apache服务.
6. 使用IP命令行显示网络接口IP地址
# ip addr [List nework interfaces]
# curl ip-address:81 [System Docker IP Address]
# curl localhost:81 [Localhost]
注意:仅能通过端口81访问网页
7. 网络访问容器的网页,在远程位置和使用HTTP协议打开浏览器、IP地址的机器在容器运行,其次是81端口,以下说明。
http://ip-address:81
8. 为了得到在容器内部运行的进程信息,使用下面命令:
# docker ps
# docker top
9. 停止Docker容器命令需要容器 ID 和 name
# docker stop
# docker ps
10. 为容器分配一个描述性名称,使用“--name”选项,如下面的示例所示
# docker run --name my-www -d -p 81:80 ubuntu-apache
# docker ps
现在你可以使用(start, stop, top, stats 等) 使用上面的名称完成任务.
# docker stats my-www
步骤3:为Docker容器创建一个系统范围的配置文件
11. 在 CentOS7中,可以创建一个 systemd 配置文件和其他本地服务一样管理容器:
例如:, 一个新的 apache-docker.service的 systemd 文件:
# vi /etc/systemd/system/apache-docker.service
apache-docker.service文件摘录:
[Unit]
Description=apache container
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a my-www
ExecStop=/usr/bin/docker stop -t 2 my-www
[Install]
WantedBy=local.target
12。编辑完文件后,关闭它,重装守护程序,并发出以下命令启动容器:
# systemctl daemon-reload
# systemctl start apache-docker.service
# systemctl statusapache-docker.service
这只是一个简单的例子,可以做一个简单的dockerfile,也可以预先建立一些非常复杂的应用程序,你可以在数秒内以最少的资源和精力启动。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com