centos7 docker容器(三)自动地建造和管理客户Docker映像文件
如何自动地建造和管理客户Docker映像文件
使用Dockerfiles文本文件可以自动地创建Docker p_w_picpath
Docker file文件包含各种建立和配置特定的容器信息。以下说明是最常用的,其中有一些是强制性的:
FROM ==Docker file的第一个指令,说明:Docker 来自那个映像文件,这里使用一个标签来指明。
例如: FROM ubuntu:14.04MAINTAINER == 构建映像文件的作者
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
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 p_w_picpaths
步骤二、运行容器和访问局域网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 status apache-docker.service
这只是一个简单的例子,可以做一个简单的dockerfile,也可以预先建立一些非常复杂的应用程序,你可以在数秒内以最少的资源和精力启动。
转载于:https://blog.51cto.com/risingair/1874637