【服务器部署篇】Linux下安装Docker容器

news2024/11/18 16:30:13

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产生了写一个博客专栏想法,介绍当前互联网企业JAVA项目开发如何快速入门。

本文收录于《30天企业JAVA项目开发实战入门》专栏,该专栏内容以当前互联网软件企业中的项目实战为线索,介绍企业JAVA项目开发中涉及到的开发流程、技术、工具、规范要求等等。帮助想从事JAVA开发的大学生或新人,更快的、更好的入门JAVA后端开发工作。

文章目录

    • 一、前言
    • 二、准备资源
    • 三、安装Docker
    • 四、安装docker-compose
    • 五、总结

一、前言

项目开发完成后,想把应用以Docker的方式部署在云服务器上。所以,本文介绍一下Linux环境下如何安装Docker容器。

  • Docker是什么?

    Docker是一个开源的应用容器引擎。它允许开发者将应用及其依赖项打包到一个可移植的容器中,这个容器可以在任何支持Docker的环境中运行,从而实现了虚拟化。

    关于Docker更大的信息,请参见Docker官网。

  • Docker的优点有哪些?

    Docker自2013年以来非常火热,已经成为服务器虚拟化部署的主流技术,它具有以下优点:

    1、快速部署
    docker允许将对实例做的任意修改固化到镜像中,在新的机器上直接运行该镜像的实例。通过这样的方式,就避免了复杂的运行环境配置等工作,且保证了开发环境的一致性,不仅方便开发者使用,也保证程序运行的稳定性。

    2、虚拟化
    Docker是基于虚拟化技术的,因此本身可以当作一个虚拟机进行使用,可以同时建立多个虚拟环境。

    3、应用隔离
    Docker完全使用沙箱环境,不同的容器之间互不影响,可以用于需要相互隔离的应用测试等场景。

    4、微服务搭建
    微服务架构将一个整体式的应用拆分成松耦合的单个服务。使用Docker可以将每个服务打包为一个镜像并使用 docker-compose来模拟生产环境(checkout docker networks),相较于传统部署方法更加简单易维护。

    5、自动测试
    使用docker可以模拟多个独立进程,以此完成服务器+测试机的自动测试架构。

    6、扩容QPS
    Docker通过创建另一个容器轻松地进行水平扩展。如果遇到巨大的高峰流量,只需添加更多的机器并增加负载均衡器背后运行的容器数量。

    7、一次性的使用环境
    Docker的虚拟化与隔离化使得使用者可以对容器做任何的修改而不对其他容器做出影响,因此可以将Docker容器作为一次性的测试环境,可以放心地进行修改而不会产生任何影响。

二、准备资源

在云服务ECS上安装Docker,可使用阿里云提供的Docker镜像源快速部署。本文主要介绍如何基于CentOS镜像安装Docker、部署docker-compose,以便更高效地构建、部署和管理应用程序。

已在阿里云购买了一台ECS服务器,并满足以下配置。

  • 操作系统:CentOS 7.x 64位、CentOS 8.x 64位、Alibaba Cloud Linux 3 64位、Alibaba Cloud Linux 2 64位
  • 网络类型:专有网络VPC
  • IP地址:实例已分配公网IP地址或绑定弹性公网IP(EIP)。
  • 安全组:入方向放行80、22、8080端口。

三、安装Docker

首先,使用阿里云客户端工具远程连接到ECS实例。这里以root账号登录进行安装,在实际的项目中,为了安全起见,建议使用子账号。

(PS:阿里云客户端工具的下载、安装和配置,见官方文档:https://help.aliyun.com/zh/ecs/user-guide/overview-of-alibaba-cloud-client)

打开阿里云客户端工具Alibaba Cloud Client,输入账号信息, 点击连接;
在这里插入图片描述
点击启动SSH连接;
在这里插入图片描述
进入ECS主界面;
在这里插入图片描述

之后,运行以下命令,下载docker-ce的yum源。

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述

之后,运行以下命令,安装Docker。

yum -y install docker-ce

在这里插入图片描述

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

docker -v

在这里插入图片描述
如果界面显示了Docker的版本信息,表示Docker已安装成功。

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

systemctl start docker

systemctl enable docker

在这里插入图片描述

最后,执行以下命令,查看Docker是否启动。

systemctl status docker

在这里插入图片描述

如果界面显示了"running",表示Docker已启动。

四、安装docker-compose

  • docker-compose是什么?

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

关于docker-compose的更多信息,请参见Docker官网。

首先,运行以下命令,安装setuptools。

pip3 install -U pip setuptools

在这里插入图片描述
之后,运行以下命令,安装docker-compose。

sudo pip3 install docker-compose

在这里插入图片描述

最后,运行以下命令,验证docker-compose是否安装成功。

docker-compose --version

在这里插入图片描述

如果界面输出了docker-compose版本信息,表示docker-compose已安装成功。

五、总结

以上介绍了如何在Linux环境下安装Docker容器。

另外,关于Docker容器使用入门,推荐菜鸟教程,https://www.runoob.com/docker/docker-container-usage.html

参考文献:阿里云官方文档《安装Docker》,https://help.aliyun.com/zh/ecs/use-cases/deploy-and-use-docker-on-alibaba-cloud-linux-2-instances

如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)

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

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

相关文章

计算机网络——37认证

认证 目标:Bob需要Alice证明他的身份 Protocol ap1.0:Alice说"A am Alice" 可能出现的问题: 在网络上Bob看不到Alice,因此Trudy可以简单的声称他是Alice 认证:重新尝试 Protocol ap2.0:Alice…

继电器线圈两端为什么要反向并联二极管

原理描述: 电感的特点:穿过电感的电流不会突然变化,也就是说变化的电流在电感上面会产生感应电动势。 感应电动势的作用:阻碍电流的变化。 三极管断开之前,电流是穿过线圈,原来的电流是从上往下流动&#…

自定义实现shell/bash

文章目录 函数和进程之间的相似性shell打印提示符,以及获取用户输入分割用户的输入判断是否是内建命令执行相关的命令 全部代码 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默&#…

数据结构和算法:分治

分治算法 分治(divide and conquer),全称分而治之,是一种非常重要且常见的算法策略。分治通常基于递归实现,包括“分”和“治”两个步骤。 1.分(划分阶段):递归地将原问题分解为两个…

C语言自定义类型变量——枚举(enum)

一.枚举的定义和声明 字面意思,枚举就是一一列举,把可能的取值一一列举,在我们现实生活中有许多可以列举的事物,例如:一周七天,一年四季,性别,月份,三原色等等。当我们需…

vim美化配置(懒人版)

文章目录 配置vim(懒人版)1.搜索资源2.安装3.自定义缩进4.卸载方法 配置vim(懒人版) 1.搜索资源 打开gitee,注意到上面的搜索框 搜索 vimforcpp 进入,找到安装方法中的链接 2.安装 复制粘贴到linux中的命…

【JavaWeb】Day36.MySQL概述——数据库设计-DDL(三)

查询 关于表结构的查询操作,工作中一般都是直接基于图形化界面操作。 1.查询当前数据库所有表 2.查看指定表结构 3.查询指定表的建表语句 注意:23版的点击导航中的转到DDL 修改 关于表结构的修改操作,一般也是直接基于图形化界面操作。 添…

Linux基础篇:Linux第三方软件仓库——可以让Linux变得有趣的软件仓库

Linux第三方软件仓库——可以让Linux变得有趣的软件仓库 一、epel源介绍 EPEL(Extra Packages for Enterprise Linux)源是一个由Fedora项目组维护的第三方软件仓库,为企业级Linux发行版(如Red Hat Enterprise Linux(…

2024年阿里云新购、升级及续费活动大全

随着云计算技术的不断发展和普及,越来越多的企业和个人开始选择将业务和数据迁移到云端。作为国内领先的云计算服务提供商,阿里云一直致力于为用户提供更加稳定、高效和安全的云服务。2024年,阿里云继续推出了丰富的新购、升级及续费活动&…

读所罗门的密码笔记12_群雄逐鹿(上)

1. 国际电信规则 1.1. 美国坚持互联网自由和极少的内容限制,这一立场肯定会遭到许多国家的反对 1.2. 除去两个各方针锋相对、无法妥协的议题,比如内容限制规定,实际上所有国家都已在打击垃圾邮件和常见网络安全威胁方…

【苍穹外卖】sql自动补全列名

第一步要设置IDEA与MySQL的链接 右侧的Database 加号 Data Source ----MySQL 填一下用户名密码就行,然后测试连接。可能会有时区问题,他让你点什么你就点 完了之后,他的表好像只有bank下面的那一个,要把所有的表都调出来&…

SpringBoot属性配置的多种方式

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉🍎个人主页:Leo的博客💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:SpringBoot属性配置的多种方式 📚个人知识库: Leo知识库,欢迎大家访问 目录 …

一些Java面试题

1、 Java语言有哪些特点 1、简单易学、有丰富的类库 2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) 3、与平台无关性(JVM是Java跨平台使用的根本) 4、可靠安全 5、支持多线程 2、面向对象和…

软件无线电原理

常规软件无线电接收器: 首先,来自天线的射频信号被放大,通常射频部分利用一个调谐器将感兴趣的频段区域的信号进行放大。这个放大的射频信号被送入一个混频器。来自本振的信号也被送入混频器,其频率由无线电的调谐控制决定。混频器…

【.Net】DotNetty

文章目录 概述NIO和BIO、AIODotNetty适用场景DotNetty的整体架构和模块DotNetty的使用示例来源 概述 本系列文章主要讲述由微软Azure团队研发的.net的版本的netty,Dotnetty。所有的开发都将基于.net core 3.1版本进行开发。 Dotnetty是什么,原本Netty是…

UART设计

一、UART通信简介 通用异步收发器, 特点:串行、异步、全双工通信 优点:通信线路简单,传输距离远 缺点:传输速度慢 数据传输速率:波特率(单位:baud,波特) …

重装系统之后,电脑连网卡都没反应怎么办?

前言 有些电脑比较奇葩,安装完成之后会出现网卡连驱动都没有,这时候要安装电脑驱动可是真的烦躁。怎么下手呢? 如果确定电脑的网卡型号还好,直接找个电脑下载个对应的网卡驱动,用U盘复制过去就能安装。 但如果不知道…

golang 选择排序

学习笔记~ // Author sunwenbo // 2024/4/6 21:49 package mainimport "fmt"/* 选择排序基本介绍选择式排序也属于内部排序法,是从预排序的数据中按指定的规则选出某一元素,经过和其他元素重整,再依原则交换位置后达到…

Java集合——Map、Set和List总结

文章目录 一、Collection二、Map、Set、List的不同三、List1、ArrayList2、LinkedList 四、Map1、HashMap2、LinkedHashMap3、TreeMap 五、Set 一、Collection Collection 的常用方法 public boolean add(E e):把给定的对象添加到当前集合中 。public void clear(…

qt-C++笔记之QLabel加载图片

qt-C笔记之QLabel加载图片 —— 2024-04-06 夜 code review! 文章目录 qt-C笔记之QLabel加载图片0.文件结构1.方法一:把图片放在项目路径下,在 .pro 文件中使用 DISTFILES添加图片文件1.1.运行1.2.qt_test.pro1.3.main.cpp 2.方法二:不在 .pr…