设为首页 收藏本站
查看: 613|回复: 0

[经验分享] centos7 docker容器(三)自动地建造和管理客户Docker映像文件

[复制链接]

尚未签到

发表于 2018-5-28 12:36:32 | 显示全部楼层 |阅读模式
如何自动地建造和管理客户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




DSC0000.png

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




DSC0001.png

第一行指明建造Ubuntu映像文件,因没有提供标签,使用最新的Docker Hub。
第二行中,添加了创建映像文件的名字和电子邮件。接下来的两行为:运行映像文件和安装Apache守护进程及 echo 一些文字到默认的Apache Web页。
EXPOSE行指明Docker容器侦听端口80,但端口不对外透明。最后一行指明在容器启动后运行Apache服务

3.使用以下命令开始创建发布的映像,将创建一个命名为Ubuntu Apache的局部映像,基于之前的dockerfile,如图所示:
# docker build -t ubuntu-apache /var/docker/ubuntu/apache/



DSC0002.png

4. 使用以下命令列出所有docker可用映像:
# docker images


DSC0003.png

步骤二、运行容器和访问局域网apache服务
5。为了连续运行容器(后台),并访问局域网中的主机或其他远程机的容器服务(端口),运行下面的命令:
# docker run -d -p 81:80 ubuntu-apache
选项 -d 后台运行 ubuntu-apache 容器守护进程。选项 -p 指定 80 端口至本地端口 81.在局域网外只能通过端口81,访问apache服务.


DSC0004.png

6. 使用IP命令行显示网络接口IP地址
# ip addr               [List nework interfaces]
# curl ip-address:81    [System Docker IP Address]
# curl localhost:81     [Localhost]

注意:仅能通过端口81访问网页


DSC0005.png

DSC0006.png

7. 网络访问容器的网页,在远程位置和使用HTTP协议打开浏览器、IP地址的机器在容器运行,其次是81端口,以下说明。
http://ip-address:81


DSC0007.png



8. 为了得到在容器内部运行的进程信息,使用下面命令:
# docker ps
# docker top



DSC0008.png

9. 停止Docker容器命令需要容器 ID 和 name
# docker stop
# docker ps

10. 为容器分配一个描述性名称,使用“--name”选项,如下面的示例所示
# docker run --name my-www -d -p 81:80 ubuntu-apache
# docker ps



DSC0009.png

现在你可以使用(start, stop, top, stats 等) 使用上面的名称完成任务.
# docker stats my-www


DSC00010.png

步骤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

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-482222-1-1.html 上篇帖子: 使用 Docker 容器网络 下篇帖子: centos7 docker容器(三)自动地建造和管理客户Docker映像文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表