如何使用 Docker 部署容器

如何使用 Docker 部署容器,第1张

设想,为了推出一个网站,您不必从裸机安装一个完整的服务器。 而不是安装 *** 作系统,然后安装服务器软件,然后部署精心设计的应用程序或站点,您可以简单地在一个独立的包中开发所有内容,并使用单个命令将其推出。

这是使用容器的众多好处之一。它们使开发和部署周期变得异常高效。但是你如何部署这些容器?我想在这里指导你完成这个过程。我们将专注于在Ubuntu Server 1804上部署基本的NGINX Web服务器作为容器。所有这一切都将在Docker的帮助下完成。

为了成功将NGINX部署为容器,您需要具备以下条件:

- 一个安装了Docker的Ubuntu Server 1804的运行实例。

- 一个docker 用户组的成员用户

是的,有了这两部分,你就准备好了。

您部署的每个容器都将基于从DockerHub中提取的镜像。 您可以下拉单个镜像并根据需要随时使用。 DockerHub上还有许多镜像用于单个应用程序或平台。 以NGINX为例。 如果你在DockerHub上搜索NGINX,你会得到大约56,172个条目。 这并不意味着每个条目都是您可以使用的可用图像。

图像命名如下:

例如,对于NGINX,您可能会找到一个名字为的镜像:

或许你可能找到:

您也看到了,有几乎所有需要的镜像。

在使用图像之前,必须将其保存在本地驱动器上。 有两种方法可以做到这一点:

- 直接使用pull命令

- 间接地,在容器部署过程中。

要从DockerHub中拉取图像,您将打开一个终端窗口并发出命令:

如果你想拉取Ingress图像,该命令是:

当你拉取你需要的图像之后,你可以使用命令确认是否存在:

上面的命令将列出你拉取的所有镜像(图A)。

拉取随意图像时要谨慎。 为什么? 因为你永远不知道创造它们的原因。 容器可能包含恶意代码,可能会对您的网络或数据造成严重破坏。 因此,最好只使用官方图像(例如NGINX图像)。

现在该部署容器了, 如果您尚未拉取镜像,则在部署阶段将下拉所需要的镜像。 由于我们拉取官方NGINX图像,我们将使用它。

要部署容器,请使用docker命令,如下所示:

备注:

- NAME等于您要为容器提供的名称(这可以是任何内容,例如nginx-webserver)。

- PORTS您要使用的端口(以NETWORK PORT:CONTAINER PORT形式)。

- IMAGE用于容器的图像(例如nginx)。

因此,部署NGINX容器的基本命令是:

容器将要部署,NGINX Web服务器将在端口80上可用于本地网络。但是,如果已在服务器上使用端口80来部署容器,该怎么办? 您可以将其部署在网络端口8080上,如下所示:

此时,您可能会看到下一个问题。 运行上述命令之一后,不返回bash提示符(图B)。

你如何运行一个容器,并获得你的bash提示? 为此,您必须以分离模式运行容器。 在此之前,您必须使用键盘组合[Ctrl] +终止当前容器。 该组合将返回提示并杀死容器。

要确定容器是否运行,使用命令:

将列出所有容器及其状态(图C)。

如果容器仍在运行,我们必须在同一端口部署另一个容器之前将其终止(否则端口会发生冲突,从而阻止容器部署)。 要杀死正在运行的容器,首先需要Container ID(随机字符串)。 发出docker ps -a命令时会显示此字符串。 要终止正在运行的容器,使用命令:

其中CONTAINER_ID是相关容器的ID。

然后,您可以使用以下命令删除容器:

其中CONTAINER_ID是相关容器的ID。

请注意,您不必输入完整的Container ID,字符串的前四个字符就足够了。

现在,要以分离模式部署容器,命令是:

这次你不仅会得到你的提示,而且Docker会为你显示容器ID(图D)。

如果你想在正在运行的容器上工作怎么办? 假设您想对NGINX进行更改甚至开始开发它将显示的网站? 因此,您必须访问容器。 因此,您需要Container ID。 使用ID,发出命令:

其中CONTAINER_ID是容器的ID。

您现在应该处于运行容器提示符(图E)中,您可以在其中开始处理NGINX服务器。

要退出容器,只需键入命令exit。

七、比你想象的容易

希望到现在为止,您看到容器部署并不像您想象的那样具有挑战性。 在Docker的帮助下,您可以在几分钟内推出专业版的应用和服务。

原文链接:

在日常工作中经常需要搭建 Web 服务器和反向代理服务器,用于测试和生产的情况都有。虽然用于测试的场景有很多便捷的方法,但是在向生产环境迁移时会导致有些工作不能复用。综合看起来,还是用 Nginx 最为方便。本文尝试提供一些配置模板。

需要提前了解的内容:

选择 OpenResty 的原因:

OpenResty 默认安装位置:

安装目录中 Nginx 相关文件:

默认服务指向 Web 文件夹

映射关系:

默认 配置文件 位置(后续的配置会覆盖这里的内容):

在绝大多数情况,覆盖上面的配置文件就可以了。

但是,这些配置文件的内容,只能是包含在 >/var/lib/docker分配给docker
一、查看docker默认目录的方法
docker默认目录为/var/lib/docker,可以通过下面的方法查看
[root@harbor system]# docker info |grep "Docker Root Dir"
Docker Root Dir: /var/lib/docker
二、停止docker服务并移动原有docker文件到新目录
systemctl stop dockerservice
mkdir -p /data/soft
mv /var/lib/docker /data/soft
登录后复制
三、重新设置 Docker Root Dir
/opt/soft/docker
vim /usr/lib/systemd/system/dockerservice
# 在 ExecStart=/usr/bin/dockerd 后追加 --graph=/data/soft/docker,注意如果本来后面有其他参数不要搞乱了
# 示例如下(后面其他参数是我个人配置别的使用的请忽略)
ExecStart=/usr/bin/dockerd --graph=/data/soft/docker -H fd:// --containerd=/run/containerd/containerdsock
登录后复制
四、重新加载配置启动服务
systemctl daemon-reload
systemctl start dockerservice
登录后复制
五、重启docker容器服务

目录

一、镜像加速

Docker 默认是从官方镜像地址 Docker Hub 下下载镜像,由于服务器在国外的缘故,导致经常下载速度非常慢。为了提升镜像的下载速度,我们可以手动配置国内镜像加速,让下载速度飚起来。

国内的镜像加速选项较多,如:阿里云,DaoCloud 等。

本文主要说说如何配置阿里云的镜像加速。

21 登录阿里云获取加速信息

>

做开发的基本都听说过沙盒 (Sandbox) 和虚拟机 (Virtual Machine,简称 VM) ,如今容器技术很火,其中以 docker 最受大家欢迎。作为一种集群管理工具,K8s 最近也是火的不要不要的。 我们经常会讲 docker 和 K8s 联系起来,那么两者之间又存在什么关联呢?

首先 Sandbox 和 VM 都是属于 虚拟技术 ,用来虚拟软件运行环境并具有资源隔离的功能。Sandbox 比较“轻”(只需要虚拟出一个小的环境)且一旦退出就释放之前占用的资源;VM 则比较重(虚拟出整个 *** 作系统,相当于子电脑)。关于 Sandbox 和 VM 的区别可以参考博客: >

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13464015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-12
下一篇 2023-08-12

发表评论

登录后才能评论

评论列表(0条)