如何自动地建造和管理客户Docker映像文件

使用Dockerfiles文本文件可以自动地创建Docker p_w_picpath

Docker file文件包含各种建立和配置特定的容器信息。以下说明是最常用的,其中有一些是强制性的:

  • FROM ==Docker file的第一个指令,说明:Docker 来自那个映像文件,这里使用一个标签来指明。
    例如: FROM ubuntu:14.04

  • MAINTAINER == 构建映像文件的作者

  • RUN ==说明映像文件创建后、运行那些命令

  • CMD ==Docker p_w_picpath开始时,运行的命令。

  • 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


centos7 docker容器(三)自动地建造和管理客户Docker映像文件

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


centos7 docker容器(三)自动地建造和管理客户Docker映像文件

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

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

# docker build -t ubuntu-apache /var/docker/ubuntu/apache/


centos7 docker容器(三)自动地建造和管理客户Docker映像文件

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

# docker p_w_picpaths


centos7 docker容器(三)自动地建造和管理客户Docker映像文件

步骤二、运行容器和访问局域网apache服务

5。为了连续运行容器(后台),并访问局域网中的主机或其他远程机的容器服务(端口),运行下面的命令:

# docker run -d -p 81:80 ubuntu-apache

选项 -d 后台运行 ubuntu-apache 容器守护进程。选项 -p 指定 80 端口至本地端口 81.在局域网外只能通过端口81,访问apache服务.


centos7 docker容器(三)自动地建造和管理客户Docker映像文件

6. 使用IP命令行显示网络接口IP地址

# ip addr               [List nework interfaces]
# curl ip-address:81    [System Docker IP Address]
# curl localhost:81     [Localhost]

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


centos7 docker容器(三)自动地建造和管理客户Docker映像文件

centos7 docker容器(三)自动地建造和管理客户Docker映像文件

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

http://ip-address:81


centos7 docker容器(三)自动地建造和管理客户Docker映像文件


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

# docker ps
# docker top


centos7 docker容器(三)自动地建造和管理客户Docker映像文件

9. 停止Docker容器命令需要容器 ID 和 name

# docker stop
# docker ps

10. 为容器分配一个描述性名称,使用“--name”选项,如下面的示例所示

# docker run --name my-www -d -p 81:80 ubuntu-apache
# docker ps


centos7 docker容器(三)自动地建造和管理客户Docker映像文件

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

# docker stats my-www


centos7 docker容器(三)自动地建造和管理客户Docker映像文件

步骤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 status apache-docker.service

这只是一个简单的例子,可以做一个简单的dockerfile,也可以预先建立一些非常复杂的应用程序,你可以在数秒内以最少的资源和精力启动。