当前位置: 首页 > news >正文

阿里云服务器安装部署Docker使用教程

本文阿里云百科分享如何在云服务ECS实例上,部署并使用Docker。Docker是一款开源的应用容器引擎,具有可移植性、可扩展性、高安全性和可管理性等优势。开发者可将应用程序和依赖项打包到一个可移植的容器中,快速发布到Linux机器上并实现虚拟化,实现更高效地构建、部署和管理应用程序。同时,阿里云提供了Docker镜像源,方便您快速部署Docker。

目录

前提条件

部署Docker

Docker基本用法

使用Docker制作镜像

安装并使用docker-compose

安装docker-compose

使用docker-compose部署应用


前提条件

已创建一台基础ECS实例,并满足以下配置。

  • 操作系统:CentOS 7.x 64位、CentOS 8.x 64位、Alibaba Cloud Linux 3 64位、Alibaba Cloud Linux 2 64位
  • ECS云服务器:aliyunbaike.com/go/ecs
  • 网络类型:专有网络VPC
  • IP地址:公网IP
  • 安全组:入方向开放80、22、8080端口。具体操作,请参见添加安全组规则。

部署Docker

  1. 远程连接ECS实例。

    关于连接方式的介绍,请参见连接方式概述。

  2. 安装Docker,CentOS 8.x

  1. 切换CentOS 8源地址。

    CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 8的源地址http://mirror.centos.org/centos/8/内容已移除,您在阿里云上继续使用默认配置的CentOS 8的源会发生报错。如果您需要使用CentOS 8系统中的一些安装包,则需要手动切换源地址。

  2. 运行以下命令,安装DNF。

    sudo yum -y install dnf
  3. 运行以下命令,安装Docker存储驱动的依赖包。

    sudo dnf install -y device-mapper-persistent-data lvm2
  4. 运行以下命令,添加稳定的Docker软件源。

    sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  5. 运行以下命令,检查Docker软件源是否已添加。

    sudo dnf list docker-ce

    出现如下图所示回显,表示Docker软件源已添加。可以使用阿里云测速工具 aliyunping.com 测试一下本地到阿里云服务器各个地域节点的Ping值网络延迟。

    image..png

  6. 运行以下命令安装Docker。

    sudo dnf install -y docker-ce --nobest

     

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

    sudo docker -v

    如下图回显信息所示,表示Docker已安装成功。

    image..png

  8. 执行以下命令,启动Docker服务,并设置开机自启动。

    sudo systemctl start docker
    sudo systemctl enable docker
  9. 执行以下命令,查看Docker是否启动。

    sudo systemctl status docker

    如下图回显所示,表示Docker已启动。

    image..png

Docker基本用法

下文只列出Docker基本用法

  • 管理Docker守护进程

    sudo systemctl start docker     #运行Docker守护进程
    sudo systemctl stop docker      #停止Docker守护进程
    sudo systemctl restart docker   #重启Docker守护进程
    sudo systemctl enable docker    #设置Docker开机自启动
    sudo systemctl status docker    #查看Docker的运行状态
  • 管理镜像

    本文以阿里云仓库的Apache镜像为例,介绍如何使用Docker管理镜像。

    • 拉取镜像。

      sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
    • 修改标签。如果镜像名称较长,您可以修改镜像标签以便记忆区分。

      sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1
    • 查看已有镜像。

      sudo docker images
    • 强制删除镜像。

      sudo docker rmi -f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
  • 管理容器

    下文的<镜像ID>可通过docker images命令查询。

    • 启动一个新容器。

      sudo docker run -it <镜像ID> /bin/bash
    • 启动一个新的容器,让容器在后台运行,并且指定容器的名称。

      sudo docker run -d --name <容器名> <镜像ID>
    • 查看容器ID。

      sudo docker ps
    • 将容器做成镜像。

      sudo docker commit <容器ID或容器名> <仓库名>:<标签>

 

使用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文件。

    1. 执行以下命令,新建并编辑Dockerfile文件。

      vim Dockerfile
    2. i进入编辑模式,并添加以下内容,改造原镜像。

      #声明基础镜像来源。
      FROM aliweb:v1
      #声明镜像拥有者。
      MAINTAINER DTSTACK
      #RUN后面接容器运行前需要执行的命令,由于Dockerfile文件不能超过127行,因此当命令较多时建议写到脚本中执行。
      RUN mkdir /dtstact
      #开机启动命令,此处最后一个命令需要是可在前台持续执行的命令,否则容器后台运行时会因为命令执行完而退出。
      ENTRYPOINT ping www.aliyun.com
    3. Esc键,输入:wq并按Enter键,保存并退出Dockerfile文件。

  4. 执行以下命令,基于基础镜像nginx构建新镜像。

    命令格式为docker build -t <镜像名称>:<镜像版本> .命令末尾的.表示Dockerfile文件的路径,不能忽略。以构建新镜像aliweb:v2为例,则命令为:

    sudo docker build -t aliweb:v2 .
  5. 执行以下命令,查看新镜像是否构建成功。

    sudo docker images 

    如下图回显所示,表示构建成功。

    image..png

安装并使用docker-compose

docker-compose是Docker官方提供的用于定义和运行多个Docker容器的开源容器编排工具,可以使用YAML文件来配置应用程序需要的所有服务,然后使用docker-compose运行命令解析YAML文件配置,创建并启动配置文件中的所有Docker服务,具有运维成本低、部署效率高等优势。

重要 

仅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部署应用

下文以部署WordPress为例,介绍如何使用docker-compose部署应用。

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

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

      vim docker-compose.yaml
    2. 按下i键,进入编辑模式,新增以下内容。

      本示例以安装WordPress为例。

      version: '3.1'             # 版本信息services:wordpress:               # 服务名称         image: wordpress       # 镜像名称restart: always        # docker启动,当前容器必启动ports:- 80:80              # 映射端口environment:           # 编写环境WORDPRESS_DB_HOST: dbWORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: 123456WORDPRESS_DB_NAME: wordpressvolumes:               # 映射数据卷- wordpress:/var/www/htmldb:                      # 服务名称    image: mysql:5.7       # 镜像名称restart: always        # docker启动,当前容器必启动ports:- 3306:3306         # 映射端口environment:           # 环境变量MYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: 123456MYSQL_RANDOM_ROOT_PASSWORD: '1'volumes:               # 卷挂载路径- db:/var/lib/mysqlvolumes:wordpress:db:

    3. 按下Esc键,退出编辑模式,然后输入:wq保存并退出。

  2. 执行以下命令,启动应用.

    sudo env "PATH=$PATH" docker-compose up -d
  3. 在浏览器中输入https://云服务器ECS实例的公网IP,即可进入WordPress配置页面,您可以根据界面提示配置相关参数后,访问WordPress。

 本文转自阿里云官方文档。

相关文章:

阿里云服务器安装部署Docker使用教程

本文阿里云百科分享如何在云服务ECS实例上&#xff0c;部署并使用Docker。Docker是一款开源的应用容器引擎&#xff0c;具有可移植性、可扩展性、高安全性和可管理性等优势。开发者可将应用程序和依赖项打包到一个可移植的容器中&#xff0c;快速发布到Linux机器上并实现虚拟化…...

WebRTC | ICE详解

目录 一、Candidate种类与优先级 二、ICE策略 1. iceServers 2. iceTransportPolicy 三、P2P连接 1.Nat类型 &#xff08;1&#xff09;完全锥型NAT &#xff08;2&#xff09;IP限制锥型NAT &#xff08;3&#xff09;端口限制锥型NAT &#xff08;4&#xff09;对称…...

网络设备(防火墙、路由器、交换机)日志分析监控

外围网络设备&#xff08;如防火墙、路由器、交换机等&#xff09;是关键组件&#xff0c;因为它们控制进出公司网络的流量。因此&#xff0c;监视这些设备的活动有助于 IT 管理员解决操作问题&#xff0c;并保护网络免受攻击者的攻击。通过收集和分析这些设备的日志来监控这些…...

2023年国赛数学建模思路 - 复盘:人力资源安排的最优化模型

文章目录 0 赛题思路1 描述2 问题概括3 建模过程3.1 边界说明3.2 符号约定3.3 分析3.4 模型建立3.5 模型求解 4 模型评价与推广5 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 描述 …...

Compute shader SV 理解图

本图转子&#xff1a;【Computeshader】个人总结_蒋伟博的博客-CSDN博客...

生信豆芽菜-多种算法计算免疫浸润

网址&#xff1a;http://www.sxdyc.com/immuneInfiltration 一、使用方法 1、数据准备 一个全编码蛋白的表达谱基因&#xff0c;其中行为基因&#xff0c;列为样本 第一列为基因为行名&#xff0c;不能重复 2、选择计算的方法&#xff08;这里提供了5种免疫计算的方法&#x…...

逆向破解学习-单机斗地主

试玩 破解思路 9000 是成功的代码 Hook代码 import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; public class HookComJuneGameDouDiZhu extends HookImpl{ Override p…...

matplotlib绘制位置-时序甘特图

文章目录 1 前言2 知识点2.1 matplotlib.pyplot.barh2.2 matplotlib.legend的handles参数 3 代码实现4 绘制效果5 总结参考 1 前言 这篇文章的目的是&#xff0c;总结记录一次使用matplotlib绘制时序甘特图的经历。之所以要绘制这个时序甘特图&#xff0c;是因为22年数模研赛C…...

数据库概述、部署MySQL服务、必备命令、密码管理、安装图形软件、SELECT语法 、筛选条件

Top NSD DBA DAY01 案例1&#xff1a;构建MySQL服务器案例2&#xff1a;密码管理案例3&#xff1a;安装图形软件案例4&#xff1a;筛选条件 1 案例1&#xff1a;构建MySQL服务器 1.1 问题 在IP地址192.168.88.50主机和192.168.88.51主机上部署mysql服务练习必备命令的使用 …...

概率论与数理统计:第四章:随机变量的数字特征

文章目录 Ch4. 随机变量的数字特征1. 数学期望E(X)(1)数学期望的概念1.离散型①一维离散型随机变量X的数学期望&#xff1a; E X EX EX②一维离散型随机变量的函数的期望&#xff1a; E [ g ( X ) ] E[g(X)] E[g(X)]③二维离散型随机变量的函数的期望&#xff1a; E [ g ( X , …...

解决饿了么ui的对话框缩放和移动

import Vue from "vue";// v-dialogDrag: 弹窗拖拽水平方向伸缩 /** 使用方法* 将以下代码复制到一个js文件中&#xff0c;然后在入口文件main.js中import引入即可&#xff1b;* 给elementUI的dialog上加上 v-dialogDrag 指令就可以实现弹窗的全屏和拉伸了。* 给…...

Linux 中复制文件并保持修改时间等属性

一、遇到的问题 Linux使用cp命令复制文件备份时&#xff0c;发现文件的修改时间变成当前时间了&#xff0c;想要保留备份文件原有的修改时间及其它文件属性。 二、实现 1、cp命令 在 Linux 中&#xff0c;你可以使用 cp 命令来复制文件&#xff0c;并通过 -p 或 --preserve…...

Hugging News #0814: Llama 2 学习资源大汇总

每一周&#xff0c;我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新&#xff0c;包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等&#xff0c;我们将其称之为「Hugging News」。本期 Hugging News 有哪些有趣的消息&#xff0…...

​可视化绘图技巧100篇进阶篇(五)-阶梯线图(Step Chart)

目录 前言 图表类型特征 适用场景 图例 绘图工具及代码实现 ECharts SMARTBI...

GPT带我学-设计模式-命令模式

1 你知道设计模式的命令模式吗 是的&#xff0c;我知道设计模式中的命令模式。命令模式是一种行为型设计模式&#xff0c;它将请求封装成一个对象&#xff0c;从而允许使用不同的请求、队列或日志来参数化其他对象。命令模式还支持撤销操作&#xff0c;并且可以提供事务的实现…...

互联网发展历程:跨越远方,路由器的启示

互联网的蓬勃发展&#xff0c;一直在追求更广阔的连接&#xff0c;更遥远的距离。然而&#xff0c;在早期的网络中&#xff0c;人们面临着连接距离有限的问题。一项重要的技术应运而生&#xff0c;那就是“路由器”。 连接受限的问题&#xff1a;距离有限 早期的网络受限于直接…...

postman入门基础 —— 接口测试流程

一、编写接口测试计划 接口测试计划和功能测试计划目标一致&#xff0c;都是为了确认需求、确定测试环境、确定测试方法&#xff0c;为设计测试用例做准备&#xff0c;初步制定接口测试进度方案。一般来说&#xff0c;接口测试计划包括概述、测试资源、测试功能、测试重点、测试…...

springcloud+nacos实现灰度发布

灰度发布 gateway网关实现灰度路由 灰度发布实体 package com.scm.boss.common.bean;import lombok.Data; import lombok.experimental.Accessors;import java.io.Serializable;/*** 灰度发布实体*/ Data Accessors(chain true) public class GrayBean implements Serializ…...

【C++笔记】C++之类与对象(上)

【C笔记】C之类与对象&#xff08;上&#xff09; 1、类是结构体的升级2、类中可以定义的东西3、类访问限定符4、类的声明5、类的实例化(定义)6、类的大小的计算7、this指针 1、类是结构体的升级 C的一个显著特征就是兼容C语言&#xff0c;所以C把结构体“升级”成了“类”&am…...

ebay灯串UL报告 UL588检测标准

季节性和装饰性照明用品即灯串以及配件都是便携式插头连接的临时性商品&#xff0c;最大额定输入电压为 120 伏。 由 ILAC ISO 17025 认证的实验室出具的检测报告&#xff0c;确认每件商品均已经过检测&#xff0c;符合下列要求&#xff1a; 季节性和装饰性照明用品(灯串&…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...