做网站分为竞价和优化,织梦做的网站怎样,黄冈论坛网,html 社区网站 模板目录 一、前言二、Docker镜像#xff1a;可运行软件包三、Docker容器#xff1a;可执行环境四、容器和镜像的关系五、创建镜像的过程5.1 编写Dockerfile5.2 构建Docker镜像5.3 查看构建的镜像5.4 运行Docker容器5.5 验证容器运行状态5.6 推送镜像到镜像仓库#xff08;可选可运行软件包三、Docker容器可执行环境四、容器和镜像的关系五、创建镜像的过程5.1 编写Dockerfile5.2 构建Docker镜像5.3 查看构建的镜像5.4 运行Docker容器5.5 验证容器运行状态5.6 推送镜像到镜像仓库可选1. 登录Docker Hub2. 标记镜像3. 推送镜像 总结 六、创建容器的过程6.1 基本过程选择镜像、启动容器、运行应用6.2 示例 七、docker run 命令7.1 镜像来源7.2 主要参数说明基本参数网络相关参数资源限制其他参数完整示例总结 八、其他常见 docker 命令 一、前言
在 WHAT - 容器化系列一 我们简单介绍过 Docker 的产生过程以及它从根本上解决本地环境和 PaaS 环境不一致的问题。Docker大大简化了容器的创建、管理和分发使得容器技术迅速普及并引发了DevOps和微服务架构的革命。
因此Docker在容器化发展进程具备非常重要的意义我们今天主要来介绍Docker。在Docker的生态系统中理解Docker镜像和Docker容器及其关系是至关重要的。
二、Docker镜像可运行软件包
Docker镜像是一种轻量级、独立的可执行软件包它包含运行某个软件所需的所有内容包括代码、运行时、库、环境变量和配置文件。
镜像是只读的并且通常基于层次结构每一层代表镜像的某个历史状态。
特点
只读性镜像是不可变的一旦创建就不能更改。层次结构镜像由多个层组成每层都是前一层的增量更新这样可以提高存储和传输效率。可移植性和一致性镜像可以在任何支持Docker的环境中运行确保应用在不同环境下的一致性。
三、Docker容器可执行环境
Docker容器是基于镜像创建的一个可运行的实例。它是一个轻量级、独立的可执行环境包含应用程序及其依赖项并且运行在一个隔离的进程空间中。
容器可以被启动、停止、移动和删除每个容器都是独立的。
特点
可写层每个容器在镜像的基础上创建时会增加一个可写层允许容器在运行时进行更改。隔离性容器通过操作系统级虚拟化技术如Namespaces和cgroups实现资源的隔离和控制。临时性容器的生命周期是短暂的通常用于运行应用程序的一个实例。
四、容器和镜像的关系
容器和镜像之间的关系可以比作面向对象编程中的类和对象
镜像是类它定义了容器的蓝图或模板包含所有需要的文件和设置。容器是对象它是镜像的实例实际运行中的实体。
容器镜像好比是一个编译好的、打包好的程序文件容器就是用这个程序文件运行的程序进程。
五、创建镜像的过程
创建Docker镜像的过程主要包括编写Dockerfile和使用Docker命令构建镜像。
以下是详细步骤
5.1 编写Dockerfile
Dockerfile 是一个文本文件包含了构建镜像的所有指令。这些指令定义了镜像的基础镜像、安装的依赖、复制的文件、设置的环境变量以及启动容器时运行的命令等。
Dockerfile 示例
以下是一个简单的示例Dockerfile用于创建一个包含Nginx服务器的镜像
# 使用官方Nginx基础镜像
FROM nginx:alpine# 维护者信息
LABEL maintaineryournameexample.com# 复制本地目录下的文件到镜像中的指定目录
COPY ./index.html /usr/share/nginx/html/index.html# 暴露端口
EXPOSE 80# 启动Nginx服务
CMD [nginx, -g, daemon off;]5.2 构建Docker镜像
编写完Dockerfile后可以使用docker build命令构建镜像。
命令格式
docker build -t 镜像名:标签 Dockerfile所在目录示例命令
# 构建镜像并命名为mynginx:latest
# docker build -t mynginx:v1.1 .
docker build -t mynginx:latest .5.3 查看构建的镜像
构建完成后可以使用docker images命令查看本地的镜像列表。
docker images5.4 运行Docker容器
构建完镜像后可以使用docker run命令基于该镜像创建并运行容器。
命令格式
docker run -d --name 容器名 -p 主机端口:容器端口 镜像名:标签示例命令
# 运行基于mynginx:latest镜像的容器映射端口80
docker run -d --name mynginx_container -p 80:80 mynginx:latest5.5 验证容器运行状态
可以使用docker ps命令查看正在运行的容器列表。
docker ps5.6 推送镜像到镜像仓库可选
如果需要将镜像分享给其他人或在不同环境中使用可以将镜像推送到Docker Hub或其他私有镜像仓库。
1. 登录Docker Hub
docker login
docker login -u admin DockerHub域名
# 示例docker login -u admin mycontainer myregistry.com2. 标记镜像
docker tag mynginx:latest DockerHub用户名/mynginx:latest
# 示例docker tag mynginx:latest mycontainer myregistry.com/myapp/mynginx:latest3. 推送镜像
docker push DockerHub用户名/mynginx:latest
# 示例 docker push mycontainer myregistry.com/myapp/mynginx:latest总结
创建Docker镜像的过程主要包括以下步骤
编写Dockerfile定义镜像的构建步骤和内容。构建镜像使用docker build命令构建镜像。查看镜像使用docker images命令查看本地镜像列表。运行容器使用docker run命令基于镜像创建并运行容器。验证容器使用docker ps命令查看容器运行状态。推送镜像可选将镜像推送到镜像仓库以便共享和使用。
通过以上步骤可以创建和管理Docker镜像从而实现应用程序的容器化部署。
六、创建容器的过程
6.1 基本过程选择镜像、启动容器、运行应用
选择镜像通过Docker命令选择一个已有的镜像或从Docker Hub等仓库中拉取一个镜像。启动容器基于选定的镜像Docker引擎创建一个容器实例并在镜像的基础上添加一个可写层。运行应用容器启动后镜像中的应用程序在隔离的环境中运行。
6.2 示例
假设有一个名为myapp的Docker镜像以下是基于这个镜像创建并运行容器的过程
# 拉取镜像如果镜像已存在可以跳过这一步
docker pull myapp# 基于镜像创建并运行容器
docker run -d --name mycontainer myapp# 查看正在运行的容器
docker ps# 进入容器
docker exec -it mycontainer /bin/bash# 停止容器
docker stop mycontainer# 删除容器
docker rm mycontainer七、docker run 命令
7.1 镜像来源
在前面我们提供过下面两个例子
# 1. 本地build后run
docker build -t mynginx:latest .
docker run -d --name mynginx_container -p 80:80 mynginx:latest# 2. 拉取远端镜像run
docker pull myapp
docker run -d --name mycontainer myapp对于远端镜像在Docker中可以直接通过docker run命令指定远端镜像而不需要先使用docker pull命令拉取镜像。Docker会在本地没有指定镜像的情况下自动从远端仓库例如Docker Hub拉取镜像然后运行容器。
以下是如何直接指定远端镜像的示例
# 直接指定远端镜像并运行容器
docker run -d --name mycontainer myapp在这个命令中如果myapp镜像不存在于本地Docker会自动从Docker Hub拉取镜像并运行容器。
如果需要指定具体的镜像版本或标签可以在镜像名后面加上标签例如myapp:latest或myapp:v1.0。
# 直接指定带标签的远端镜像并运行容器
docker run -d --name mycontainer myapp:latest另外如果镜像托管在私有仓库或组织名下需要包括仓库地址或组织名
# 指定私有仓库中的镜像并运行容器
docker run -d --name mycontainer myregistry.com/myapp:latest# 指定组织名下的镜像并运行容器
docker run -d --name mycontainer myorg/myapp:latest7.2 主要参数说明
docker run 是 Docker 中用于创建并运行容器的主要命令。这个命令有许多参数可以用来配置容器的运行方式。以下是一些常用的 docker run 参数及其说明
基本参数 -d 或 --detach 作用以后台模式运行容器。示例docker run -d nginx --name 作用为容器指定一个名称。示例docker run --name mycontainer nginx -p 或 --publish 作用将容器的端口映射到主机的端口。示例docker run -p 8080:80 nginx -e 或 --env 作用设置环境变量。示例docker run -e MYVARmyvalue nginx -v 或 --volume 作用挂载主机目录或数据卷到容器。示例docker run -v /host/path:/container/path nginx --rm 作用容器停止后自动删除容器。示例docker run --rm nginx -it 作用以交互模式运行容器并绑定终端。示例docker run -it ubuntu /bin/bash
网络相关参数 --network 作用指定容器的网络模式。示例docker run --network bridge nginx --link 作用连接到其他容器。示例docker run --link another_container nginx
资源限制 --cpus 作用限制容器使用的CPU数量。示例docker run --cpus1.5 nginx --memory 作用限制容器使用的内存。示例docker run --memory512m nginx
其他参数 --restart 作用定义容器的重启策略。示例docker run --restartalways nginx --env-file 作用从文件中读取环境变量。示例docker run --env-file ./env.list nginx --entrypoint 作用覆盖镜像的默认入口点。示例docker run --entrypoint /bin/bash ubuntu -u 或 --user 作用以指定用户运行容器。示例docker run -u 1001 nginx --log-driver 作用指定容器的日志驱动。示例docker run --log-driversyslog nginx
完整示例
结合多个参数的完整示例
docker run -d --name mynginx -p 8080:80 -v /mydata:/data --env MYVARmyvalue --network mynetwork --restartalways nginx-d以后台模式运行容器。--name mynginx为容器指定名称为 mynginx。-p 8080:80将主机的8080端口映射到容器的80端口。-v /mydata:/data将主机目录 /mydata 挂载到容器的 /data 目录。--env MYVARmyvalue设置环境变量 MYVAR 为 myvalue。--network mynetwork将容器连接到 mynetwork 网络。--restartalways设置容器重启策略为总是重启。nginx使用 nginx 镜像。
总结
docker run 命令提供了丰富的参数选项允许用户精细控制容器的运行方式。通过组合不同的参数可以满足各种应用场景的需求。
八、其他常见 docker 命令
以下是一些常见的Docker命令及其功能介绍 查看容器 docker ps这个命令列出当前正在运行的容器。 启动或停止容器 docker start 容器ID或名称
docker stop 容器ID或名称通过这些命令可以启动或停止指定的容器。 删除容器 docker rm 容器ID或名称这个命令用于删除指定的容器。 在容器中执行命令 docker exec -it 容器ID或名称 命令这个命令允许你在正在运行的容器中执行特定的命令。 分析容器的配置 docker inspect 容器ID或名称这个命令会返回指定容器的详细配置信息包括网络设置、挂载的卷、环境变量等。 查看容器标准输出日志 docker logs 容器ID或名称这个命令用于查看容器的标准输出日志可以用来调试和监视容器的运行情况。 查看镜像 docker images这个命令列出本地系统中的Docker镜像列表。 删除镜像 docker rmi 镜像ID或名称这个命令用于删除指定的Docker镜像。