📜  Docker 运行映像 (1)

📅  最后修改于: 2023-12-03 15:00:30.183000             🧑  作者: Mango

Docker 运行映像

Docker 是一个开源的应用程序容器引擎,能够简化应用程序的部署、运行和管理过程。Docker 运行映像是 Docker 构建和打包应用程序的基本单元,可以理解为 Docker 的“基本组件”。

Docker 运行映像的基本概念
  • Docker 运行映像是由 Dockerfile 中定义的一组文件、依赖项和配置项组成的。
  • Docker 运行映像可以在不同的 Docker 容器环境中运行,提供了一致性和可移植性。
  • Docker 运行映像通过 Docker Hub 或者私有的 Docker Registry 提供。
Docker Hub 介绍

Docker Hub 是一个公共的 Docker 映像注册表,可以通过它访问、分享和管理 Docker 运行映像。

  • Docker Hub 提供了公共的 Docker 运行映像,如官方的 PHP、Node.js、MySQL 等。
  • Docker Hub 也提供了 Private Registry,可以使用它搭建自有的私有 Docker 运行映像注册表。
Docker 运行映像的使用

运行一个 Docker 运行映像的基本命令如下:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • OPTIONS:用于指定 Docker 运行时的参数。
  • IMAGE:指定要运行的 Docker 运行映像。
  • COMMAND:可选项,指定 Docker 运行映像的命令。
  • ARG:可选项,指定 Docker 运行映像的命令参数。

例如,运行官方的 nginx Docker 运行映像:

docker run -d -p 8080:80 nginx

这将在 Docker 容器中运行 nginx,外部可以通过 http://localhost:8080 访问。

Dockerfile 的编写

Dockerfile 是 Docker 运行映像所依据的定义文件,可以通过它定义 Docker 运行映像的组件、依赖项和环境等。

Dockerfile 的基本语法如下:

# Comment
INSTRUCTION arguments

其中,INSTRUCTION 包括 FROM、COPY、RUN、CMD、ENTRYPOINT 等关键字,表示 Docker 构建和打包的各个阶段和动作。

例如,一个简单的 Dockerfile 示例:

# 基于 CentOS 运行映像
FROM centos:7

# 安装必要的软件包
RUN yum install -y httpd && \
  yum clean all && \
  systemctl enable httpd.service

# 暴露端口
EXPOSE 80

# 运行 httpd
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

这个 Dockerfile 定义了一个基于 CentOS7 的运行映像,包括安装 Apache HTTP Server 和设置为系统服务,最后通过 CMD 命令启动 HTTP Server 进程。

参考链接