在阿里云ECS云服务器上部署和使用开源的应用程序容器引擎Docker

2024-01-09

Docker 是一个开源的应用程序容器引擎,具有可移植性、可扩展性、高安全性和可管理性等优势。它允许开发人员将应用程序和依赖项打包到可移植容器中,从而在 Linux 机器上高效构建、部署和管理应用程序。阿里云提供Docker镜像仓库,用于快速部署Docker。

先决条件

请确保您已创建具有以下配置的ECS实例。如果您尚未创建实例,请参考: 阿里云国际服务器创建

  • 操作系统 :CentOS 7.x 64位、CentOS 8.x 64位、Alibaba Cloud Linux 3 64位、Alibaba Cloud Linux 2 64位
  • 网络类型 :VPC
  • IP 地址:公网 IP 地址
  • 安全组 :80、22、8080端口允许的入方向流量。

部署 Docker

1. 连接ECS实例。

2. 安装 Docker。

本示例使用镜像版本Alibaba Cloud Linux 3。

a) 执行以下命令,添加Docker社区版(Docker-CE)的DNF仓库。

sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-
ce/linux/centos/docker-ce.repo

b) 执行以下命令,安装Alibaba Cloud Linux 3专用的DNF仓库插件。

sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus

c) 执行以下命令安装Docker。

sudo dnf -y install docker-ce --nobest

如果执行命令后返回类似如下的错误信息,请推荐 /etc/yum.repos.d 目录下的 CentOS 软件库,然后重新安装 Docker-CE。

1

3. 执行以下命令,查看Docker是否安装成功。

sudo docker -v

如下图所示,表示已安装Docker。

2

4. 运行以下命令以启动 Docker,并将 Docker 配置为在系统启动时运行:

sudo systemctl start docker
sudo systemctl enable docker

5. 执行以下命令,查看Docker是否启动。

sudo systemctl status docker

类似于以下命令输出,表示Docker已启动。

3

Docker 基本用法

本节仅介绍 Docker 的基本用法。

  • 管理 Docker 守护程序
sudo systemctl start docker # Run the Docker daemon.
sudo systemctl stop docker # Stop the Docker daemon.
sudo systemctl restart docker # Restart the Docker daemon.
sudo systemctl enable docker # Configure Docker to start on system startup.
sudo systemctl status docker # Check the status of Docker
  • 管理映像

本文将以阿里云容器镜像服务中的Apache镜像为例,演示如何使用Docker管理镜像。

o 拉取图像。

sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

o 修改标签。阿里云容器镜像服务中的镜像名称很长。使用标签使图像易于识别。

sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1

o 查看现有图像。

sudo docker rmi -f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
  • 管理容器
  • 若要查询要在以下代码片段中使用的值,请运行该命令。 <Image ID> docker images

o 启动一个新容器。

sudo docker run -it <Image ID> /bin/bash

o 在后台启动一个新容器,并指定容器的名称。

sudo docker run -d --name <Container name> <Image ID>

o 查询容器 ID。

sudo docker ps

o 从容器创建映像。

sudo docker commit <Container ID or container name> <Repository name >:< Tag>

使用Docker创建镜像

本节介绍如何从 Dockerfile 创建简单的自定义 NGINX 映像。

1. 执行以下命令,拉取镜像。 本示例中,从阿里云容器镜像服务中拉取Apache镜像。

sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

2.修改图像的标签,使图像更易于识别。

sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1

3. 运行以下命令以创建和编辑 Dockerfile:

a) 运行以下命令以创建和编辑 Dockerfile:

vim Dockerfile

b) 按键进入插入模式,将以下内容添加到文件中: i

#Declare a base image. 
FROM aliweb:v1
#Declare the owner of the base image. 
MAINTAINER DTSTACK
#Specify the commands that you want to run before the container starts. You must append the commands to the end of the RUN command. A Dockerfile can contain up to 127 lines. If the total length of your commands exceeds 127 lines, we recommend that you write the commands to a script. 
RUN mkdir /dtstact
#Specify the commands that are run on system startup. The last command must be a frontend command that runs constantly. Otherwise, the container exits after all commands are run. 
ENTRYPOINT ping www.aliyun.com

c) 按 键,回车 ,然后按 键保存并关闭 Dockerfile 文件。 Esc :wq Enter

4. 运行以下命令,基于基础 NGINX 映像创建映像。按以下格式创建命令:. docker build -t <Image name>:<Image version>.

命令末尾的句点 (.) 表示 Dockerfile 的路径。您必须添加句点 (.)。

例如,创建名为aliweb、版本为v2的镜像,执行以下命令。

sudo docker build -t aliweb:v2 .

5. 执行以下命令,查看新镜像是否构建成功。

sudo docker images

A command output similar to the one displayed in the following figure indicates that the image is created.

4

Install and Use docker-compose

docker-compose 是 Docker 团队提供的开源容器编排工具。它允许您定义和运行多个 Docker 容器。通过使用 YAML 文件,您可以配置应用程序所需的所有服务。使用 docker-compose 命令解析 YAML 文件配置后,您可以创建并启动所有指定的 Docker 服务。Compose具有降低运维成本、提高部署效率等优势。

注意 :只有 Python 3 及以上版本支持 docker-compose。确保您已安装 pip。

安装 docker-compose

1. 运行以下命令以安装 setuptools。

pip3 install -U pip setuptools

2. 运行以下命令以安装 docker-compose:

pip3 install docker-compose

3. 执行以下命令,查看docker-compose是否安装成功。

docker-compose --version

如果返回docker-compose版本,则表示安装docker-compose。

使用 docker-compose 部署应用程序

本节介绍如何使用docker-compose部署WordPress。

1. 创建和编辑 docker-compose.yaml 文件。

a) 运行以下命令以创建docker-compose.yaml文件。

vim docker-compose.yaml

b) 按键进入插入模式,将以下内容添加到文件中。 i

在此示例中,添加了用于安装 WordPress 的内容。

version: '3.1'               # Specify the version of Docker Compose.
services:
wordpress:               # Specify a service name.
image: wordpress       # Specify an image name.
restart: always        # Configure the container to start each time Docker starts.
ports:
- 80:80              # Specify port mappings.
environment:           # Configure environment variables.
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: 123456
WORDPRESS_DB_NAME: wordpress
volumes:               # Configure mappings between containers and ECS volumes.
- wordpress:/var/www/html
db:                      # Specify a service name.
image: mysql:5.7       # Specify an image name.
restart: always        # Configure the container to start each time Docker starts.
ports:
- 3306:3306         #  Specify port mappings.
environment:           # Configure environment variables.
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: 123456
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:               # Configure mappings between containers and ECS volumes.
- db:/var/lib/mysql
volumes:
wordpress:
db:

c) 按 键退出插入模式,输入然后按 Enter 键保存并关闭文件。 Esc :wq

2. 运行以下命令以启动应用程序:

sudo env "PATH=$PATH" docker-compose up -d

3. 在浏览器地址栏中输入格式的地址,进入WordPress配置页面。您可以根据界面提示配置参数,访问WordPress。 https://<Public IP address of the ECS instance>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在阿里云ECS云服务器上部署和使用开源的应用程序容器引擎Docker 的相关文章

  • 外包干了2个月,技术退步明显...

    先说一下自己的情况 大专生 18年通过校招进入武汉某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • Kali Linux 安全渗透核心总结,444页核心知识点

    就像IT人离不开Linux系统一样 网安人也离不开Kali Linux 作为攻击性防御和渗透测试的代名词 越来越多的人开始学习Kali 如果你也对kali感兴趣 又想深入了解这方面内容 不妨收藏一下这份Kali Linux安全渗透教程 共4
  • 环信IM Demo登录方式如何修改为自己项目的?

    在环信即时通讯云IM 官网下载Demo 本地运行只有 手机 验证码 的方式登录 怎么更改为自己项目的Appkey和用户去进行登录呢 本文以Web端为例 教大家如何更改代码来实现 1 VUE2 Demo vue2 demo源码下载 vue2
  • Linux中的磁盘空间管理:df命令的详解与应用

    在Linux操作系统中 磁盘空间的管理是系统管理员和普通用户都需要面对的重要任务 为了帮助用户更好地理解和管理磁盘空间 Linux提供了一系列工具 其中最常用 最直观的莫过于df命令 df命令 全名为 disk free 它是一个用于显示磁
  • JMeter使用BeanShell断言

    BeanShell简介 BeanShell 是使用Java语法的一套脚本语言 在JMeter的多种组件中都有BeanShell的身影 如 定时器 BeanShell Timer 前置处理器 BeanShell PreProcessor 采样

随机推荐

  • _update_by_query

    POST your index update by query script source ctx source new field updated value query match your field your value
  • 微信getAccessToken限制问题

    微信getAccessToken限制问题 错误代码 45009 错误信息 调用分钟频率受限 https developers weixin qq com miniprogram dev OpenApiDoc mp access token
  • 世微 AP2402降压恒流驱动IC LED刹车灯方案 全亮 半亮 瀑闪

    AP2402 是一款 PWM 工作模式 高效 率 外围简单 内置功率管 适用于 5 100V 输入的高精度降压 LED 恒流驱动芯片 输 出功率可达 15W 电流 1 5A AP2402 可实现三段功能切换 通过 MODE1 2 3 切换三
  • 题解 | #链表中的节点每k个一组翻转#C++暴力遍历解法

    求大家投下我们腾讯吧 发的一堆sp被鸽了 大数据面试题 Hive 华为14A还是保研华中科技大学 求大家投下我们腾讯吧 发的一堆sp被鸽了 终极 2024校招八股文 MySQL索引 第一篇 招芯片验证实习生 碰到渣导悲哀3年 给秋招画个句号
  • 保护道路弱势群体,德思特V2X通信方案在行动!

    一 道路弱势群体的潜在交通危险 在交通安全中 如何保护道路弱势群体也是一大难题 由于行人和非机动车没有车身保护 他们在道路上与机动车相比更容易受到严重的伤害 车辆驾驶员的注意力不集中 超速 闯红灯 不礼让等行为可能导致行人和非机动车的碰撞和
  • SAN与NAS:存储架构的对比与选择

    在当今的数据密集型时代 存储架构的选择对于企业的成功至关重要 SAN Storage Area Network 和NAS Network Attached Storage 作为两种主流的存储架构 各自拥有独特的优势和应用场景 本文将深入探讨
  • 【年度重磅】《2023华为开发者宝典》覆盖16+技术领域,30+华为云专家倾力打造,免费下载

    2023华为开发者宝典 重磅发布 点击下载 欢迎大家转发赠阅 相互交流学习 时光荏苒 转眼间我们已经告别挑战与机遇并存的2023年 迎接充满无限可能的2024年 截至到2023年 华为云生态已聚合了全球超过550万开发者 这一年 我们通过
  • 如何顺滑使用华为云编译构建平台?

    这两年平台构建服务需求越来越大 却一直苦于找不到一些指南 这里特意写了一篇 对在学习代码阶段和新手程序员朋友也蛮友好 配置真的也不难 也特别适合想尝试从0到1做个APP的朋友了 以华为云的CodeArts Build为例 讲一下如何开通平台
  • 天猫数据分析工具推荐(天猫第三方数据平台)

    在电商迅速发展的大背景下 做好天猫数据分析能够在多方面帮助品牌商家更好地运营店铺 塑造品牌 如通过数据分析了解消费者的需求 购买偏好 这有利于品牌商家及时调整商品结构 产品推广 商品宣传等等 灵活制定品牌的销售策略 那么 天猫平台行业 品牌
  • 网络安全现状:揭秘白帽黑客的真实收入

    前言 作为一个网络安全行业五年打工仔 今天就来看看黑客的收入和方向怎么样 一个黑客年薪是多少呢 外界普遍认为黑客是高收入群体 那么你想过黑客是怎么获得收入的吗 黑客分为白帽黑客和黑帽黑客 处于黑白两道的黑客会的技术都有些相似 但是却是对立的
  • vmware磁盘文件瘦身

    一 发现问题 vmware越用越大怎么办 如何减少磁盘空间 日常工作学习中 我们都会使用VMware来搭建开发环境 但是随着使用的时间增加 会发现磁盘占用越来越大 导致磁盘空间很快耗光了 这是由于虚拟机在使用过程中生成了大量的临时文件和碎片
  • 15分钟无门槛高效构建服务器性能监控系统!

    服务器监控是每个互联网厂商都重视并且想要尽可能做好的事情 从数据收集 数据处理 数据可视化最终再到实时监控告警 这一系列复杂的流程可能耗费企业大量的人力和时间 以至于某些时候因为其复杂性高无法达到预期的监控效果 而当事故发生时才发现 由于监
  • Jmeter 性能压测 —— 常遇问题与解决技巧!

    问题1 如何在大并发测试下 让登录或者后续接口只执行一次 分析 这个问题网上的答案其实很多 但是大多不靠谱 比如推荐使用仅一次控制器 但是仅一次控制器对线程组无效 比如推荐跨线程组调用 但是这样比较繁琐 新人也搞不定 其实只要各位对元件熟悉
  • 世微AP9196 DC-DC 升压恒流电源管理芯 电解水驱动电源应用线路

    AP9196 是一系列外围电路简洁的宽调光比升压调光恒流驱动器 适用于 3 40V 输入电压范围的 LED照明领域 AP9196 采用我司专利算法 可以实现高精度的恒流效果 输出电流恒流精度 3 电压工作范围为5 40V 可以轻松满足锂电池
  • 我当年自学黑客(网络安全)的一些心得!(内附学习笔记)

    前 言 写这篇教程的初衷是很多朋友都想了解如何入门 转行网络安全 实现自己的 黑客梦 文章的宗旨是 1 指出一些自学的误区 2 提供客观可行的学习表 3 推荐我认为适合小白学习的资源 大佬绕道哈 文末有福利 一 自学网络安全学习的误区和陷阱
  • 拍照翻译用什么软件?这些软件帮你轻松实现拍照翻译

    巴山楚水凄凉地 Submission dear me 去年考过四级的朋友应该都懂这个梗吧 作文的题目咱是从头到尾看了十几遍 但还是猜不出来 submission 是啥意思 于是开头就来个 Dear submission 写完还美滋滋的觉得自
  • 解锁数据之门Roxlabs全球住宅IP赋能海外爬虫与学术研究

    11 20云账房测试一面凉经 华为开奖啦 关于邮储的一些情况 维信金科一面 二面 hr面 我的导师太好了 上海维信金科 技术面试一 Java后端开发岗记录贴 维信金科正式批面经 软件技术领域就业大纲 1 公司分类 你裁掉这个应届生用了多长时
  • 自动驾驶轨迹预测

    目录 神经网络轨迹预测综述 比较新的轨迹预测网络 Uber LaneRCNN 5 Google VectorNet 6 Huawei HOME 7 Waymo TNT 8 Aptive Covernet 9 NEC R2P2 10 商汤 T
  • 工作五年,一年内我靠这系列java面试宝典从13K到大厂30K

    我认为对于面试以及进阶最佳的学习方法莫过于 刷题 博客 书籍 总结 前三者我将淋漓尽致地挥毫于这篇文章中 至于总结要靠个人 实际上越到后面你越会发现面试并不难 其次就是在刷题的过程中有没有去思考 刷题只是次之 这又是一个层次了 这里暂时不提
  • 在阿里云ECS云服务器上部署和使用开源的应用程序容器引擎Docker

    Docker 是一个开源的应用程序容器引擎 具有可移植性 可扩展性 高安全性和可管理性等优势 它允许开发人员将应用程序和依赖项打包到可移植容器中 从而在 Linux 机器上高效构建 部署和管理应用程序 阿里云提供Docker镜像仓库 用于快