阿里云服务器安装部署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。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/33688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

selenium常见等待机制及其特点和使用方法

目录 1、强制等待 2、隐式等待 3、显示等待 1、强制等待 强制等待是在程序中直接调用Thread.sleep(timeout) ,来完成的&#xff0c;该用法的优点是使用起来方便&#xff0c;语法也比较简单&#xff0c;缺点就是需要强制等待固定的时间&#xff0c;可能会造成测试的时间过…

【数据结构】链表(一)

链表&#xff08;一&#xff09; 文章目录 链表&#xff08;一&#xff09;01 引入02 概念及结构03 单向不带头不循环链表实现3.1 创建节点类型3.2 简易创建一个链表3.3 遍历链表每个节点3.4 获取链表长度3.5 查找是否包含关键字key是否在单链表当中3.6 头插法3.7 尾插法3.8 任…

JVM之内存模型

1. Java内存模型 很多人将Java 内存结构与java 内存模型傻傻分不清&#xff0c;java 内存模型是 Java Memory Model&#xff08;JMM&#xff09;的意思。 简单的说&#xff0c;JMM 定义了一套在多线程读写共享数据时&#xff08;成员变量、数组&#xff09;时&#xff0c;对数据…

2023-08-08 Ubuntu 挂载U盘 fdisk -l 、sudo mount /dev/sdb1 /mnt/mydisk

一、基本命令 1、插入U盘&#xff0c;查看U盘是否被系统识别&#xff1a; 打开终端&#xff0c;输入&#xff1a; sudo fdisk -l 查看系统是否识别U盘&#xff0c;如果识别&#xff0c;会显示U盘的相关信息&#xff0c;如果没有识别&#xff0c;则说明系统没有识别U盘。 2…

ESP 32 蓝牙虚拟键盘链接笔记本电脑的键值问题

由于打算利用esp32 通过蓝牙链接电脑后实现一些特俗的键盘功能&#xff0c;所以就折腾了一下&#xff0c;折腾最耗费时间的却是键值问题&#xff0c;让一个20多年的老司机重新补充了知识 过程曲折就不说了&#xff0c;直接说结果。 我们通过网络搜索获取的键值和蓝牙模拟键盘传…

Qt5.9.4搭建安卓环境-Qt for Android

目录 需要安装以下内容&#xff1a;安装JDK设置环境变量安装剩余文件 使用新建文件 可能出现的问题第一种解决方法&#xff1a; 第二种解决方法 需要安装以下内容&#xff1a; 下载地址&#xff1a; https://www.qter.org/portal.php?modview&aid10 很多Qt开发会用到的环…

2.0 Maven基础

1. Maven概述 Maven概念 Apache Maven是一个软件项目管理工具&#xff0c;将项目开发和管理过程抽象程一个项目对象模型&#xff08;POM&#xff0c;Project Object Model&#xff09;。 Maven作用 项目构建 提供标准的、跨平台的自动化项目构建方式。 依赖管理 方便快捷…

LeetCode 1572. 矩阵对角线元素的和

【LetMeFly】1572.矩阵对角线元素的和 力扣题目链接&#xff1a;https://leetcode.cn/problems/matrix-diagonal-sum/ 给你一个正方形矩阵 mat&#xff0c;请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例 1&…

【python技巧】文本文件的读写操作

【python技巧】文本文件的读写操作 0. 背景1. file库的文件操作1.1 打开文件---file.open()1.2 读取文件---file.read()1.3 写入文件---file.write()1.4 查找内容---file.seek() 2. re库的文本处理参考资料 0. 背景 最近在写后端接口的时候&#xff0c;需要对.c、.conf等类型的…

【云原生•监控】基于Prometheus实现自定义指标弹性伸缩(HPA)

【云原生•监控】基于Prometheus实现自定义指标弹性伸缩(HPA) 什么是弹性伸缩 「Autoscaling即弹性伸缩&#xff0c;是Kubernetes中的一种非常核心的功能&#xff0c;它可以根据给定的指标&#xff08;例如 CPU 或内存&#xff09;自动缩放Pod副本&#xff0c;从而可以更好地管…

关系型数据库MySQL及其优化

写在前面 本文看下MySQL的基础内容以及常见的优化方式。 1&#xff1a;MySQL基础内容 1.1&#xff1a;什么是关系型数据库 以二维的数据格式来存储数据的数据库叫做关系型数据库&#xff0c;其中关系包括一对一&#xff0c;一对多&#xff0c;多对多&#xff0c;都通过二位…

商业智能BI,如何区别联机事务处理(OLTP)和联机分析处理(OLAP)

商业智能(Business Intelligence&#xff0c;简称&#xff1a;BI)&#xff0c;又称商业智慧或商务智能&#xff0c;指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。 商业智能BI - 派可数据数据可视化分析平台 定义为下列软件工具…

CAD随机粗糙度表面插件

插件介绍 CAD随机粗糙度表面插件可用于在AutoCAD软件内生成随机高度分布的表面三维实体模型&#xff0c;适用于科研论文绘图、有限元建模、随机地形模拟等方面的应用。 插件可指定的参数有三维模型的长、宽、高&#xff1b;随机粗糙度表面信息中网格尺寸控制模型生成的精细程…

解决idea编辑application.yml文件或properties文件没有提示问题

注意&#xff1a;这里说的没有提示&#xff0c;是针对application.properties和application.yml文件 解决办法&#xff1a;在idea的插件面板中&#xff0c;禁用或卸载 wl Spring Assistant插件即可解决问题。

做BI领域的ChatGPT,思迈特升级一站式ABI平台

8月8日&#xff0c;以「指标驱动 智能决策」为主题&#xff0c;2023 Smartbi V11系列新品发布会在广州丽思卡尔顿酒店开幕。 ​ 后疫情时代&#xff0c;BI发展趋势的观察与应对 在发布会上&#xff0c;思迈特CEO吴华夫在开场致辞中表示&#xff0c;当前大环境背景下&#xf…

K8S系列文章之 离线安装自动化工具Ansible

参考 文档 离线安装 Ansible - DevOps - dbaselife 一、Ansible简介 Ansible是一款开源的IT配置管理工具&#xff0c;常被IT界的小伙伴们用于自动化的场景&#xff0c;多用在服务部署、配置管理方面。配置文件采用最常见的yaml格式&#xff0c;学习起来也是比较容易&#xff…

【分布式系统】聊聊高性能设计

每个程序员都应该知道的数字 高性能 对于以上的数字&#xff0c;其实每个程序员都应该了解&#xff0c;因为只有了解这些基本的数字&#xff0c;才能知道对于CPU、内存、磁盘、网络之间数据读写的时间。1000ms 1S。毫秒->微秒->纳秒-秒->分钟 为什么高性能如此重要的…

数据结构刷题训练:用栈实现队列(力扣OJ)

目录 前言 1. 题目&#xff1a;用栈实现队列 2. 思路 3. 分析 3.1 定义 “ 队列 ” 3.2 创建队列 3.3 入队 3.4 队头数据 3.5 出队 3.6 判空和销毁 4.题解 总结 前言 栈和队列是数据结构中的两个重要概念&#xff0c;它们在算法和程序设计中都有着广泛的应用。本文将带你深入了…

kube-prometheus 使用 blackbox-exporter 进行icmp 监控

安装kube-prometheus 后默认在monitoring namespace中有创建 blackbox-exporter deployment。但默认没有icmp的module配置&#xff0c;无法执行ping探测。因为即使有icmp module&#xff0c;默认配置也是无法执行ping探测的&#xff08;这篇文章要解决的就是这个问题&#xff0…

中科亿海微FIFO使用

引言 FPGA&#xff08;现场可编程门阵列&#xff09;是一种可编程逻辑器件&#xff0c;具有灵活性和可重构性&#xff0c;广泛用于数字电路设计和嵌入式系统开发。在FPGA中&#xff0c;FIFO&#xff08;First-In, First-Out&#xff09;是一种常见的存储器结构&#xff0c;用于…