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

作者介绍:本人笔名姑苏老陈,从事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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

X服务器远程连接问题解决:Bad displayname ““‘或Missing X server or $DISPLAY

X服务器远程连接问题 报错1 ImportError: this platform is not supported: (failed to acquire X connection: Bad displayname "", DisplayNameError()) Try one of the following resolutions: * Please make surethat you have an X server running, and that …

基于无线物联网的智能配电监控系统设计应用

摘要:阐述基于电力物联网的智能配电监控系统的特点,探讨物联网结构及其关键技术,电力物联网下的智能配电监控系统设计,包括整体结构设计、硬件和软件系统设计。 安科瑞薛瑶瑶18701709087 关键词:电力物联网&#xff…

AI水下颜色校正解决方案,助力企业打造水下视觉盛宴

水下摄影作为一种独特且富有挑战性的拍摄方式,正受到越来越多旅行者和摄影师的青睐。然而由于海水的光线折射和金属成分的影响,水下拍摄的照片和视频往往存在严重的偏色问题,无法真实还原水下世界的美丽与神奇。美摄科技凭借深厚的技术积累和…

【动态规划】【01背包】Leetcode 416. 分割等和子集

【动态规划】【01背包】Leetcode 416. 分割等和子集 ---------------🎈🎈416. 分割等和子集 题目链接🎈🎈------------------- 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0…

顺序表的应用之通讯录

学习了顺序表之后,我们也得知道它的实际用途吧!所以,我们今天来学习一下通讯录的实现。 typedef struct personInfo SLDataType; contact.h #define NAME_MAX 20 #define GENDER_MAX 20 #define GTEL_MAX 20 #define ADDR_MAX 100 #include&…

芯课堂 | JScope虚拟示波器使用说明

​1. 首先需要安装Jlink的驱动,即安装JLink_Windows_V634e之后才能安装JScope,一般这个能正常使用Jlink下载、仿真说明你的Jlink驱动已经正常安装 2. 需要安装Jscope,即安装Setup_JScope_V611m,安装完成之后能看到以下画面 3. 新建…

ip地址电脑哪里看?一文揭秘

在数字化和网络化的今天,IP地址对于电脑用户而言具有至关重要的意义。无论是进行网络配置、故障排除还是安全管理,了解如何查看电脑的IP地址都是一项必备技能。虎观代理将深入解析IP地址的概念,详细指导用户如何在电脑上查看IP地址&#xff0…

红黑树插入机制深度剖析与实践指南

红黑树插入机制深度剖析与实践指南 一、红黑树的基本概念二、插入操作的初步2.1 RB-INSERT-FIXUP过程2.2 循环的不变性2.2.1 情况1:叔节点是红色2.2.2情况2和情况3:叔节点是黑色 三、插入操作的复杂性分析四、伪代码4.1 RB-INSERT 过程4.2 RB-INSERT-FIX…

angular—mooc课学习笔记

1.angular工程目录 2.设置标签元素样式 3.fex布局 4.事件绑定 5. 双向数据传输 6. 键盘实现方法

新生儿斜视:早期发现与关爱的重要性

引言: 新生儿斜视是一种常见的眼睛问题,如果不及时发现和治疗,可能会影响宝宝的视觉发展。因此,家长们需要重视并及时关注宝宝眼睛的情况,以便及早发现并处理斜视问题。在本文中,我们将探讨新生儿斜视的注意…

蓝桥杯刷题 前缀和与差分-[NewOJ P1819]推箱子(C++)

题目描述 在一个高度为H的箱子前方,有一个长和高为N的障碍物。 障碍物的每一列存在一个连续的缺口,第i列的缺口从第l各单位到第h个单位(从底部由0开始数)。 现在请你清理出一条高度为H的通道,使得箱子可以直接推出去。…

蓝桥杯刷题-09-三国游戏-贪心⭐⭐⭐

蓝桥杯2023年第十四届省赛真题-三国游戏 小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵X, Y, Z (一开始可以认为都为 0 )。游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i 个事件发生时会分别让 X, Y,…

GitHub突破1000星!上交、清华开源个性化联邦学习算法库PFLlib

©PaperWeekly 原创 作者 | 张剑清 单位 | 上海交通大学、清华大学(AIR) 研究方向 | 联邦学习 我们在 GitHub 上开源了一个个性化联邦学习算法仓库(PFLlib),目前已经获得 1K 个 Star 和 200 个 Fork,在…

【C++】探索C++中的类与对象(下)---深入理解C++中的关键概念与应用

​​ 🌱博客主页:青竹雾色间. 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 ✨人生如寄,多忧何为 ✨ 在C编程中,有许多重要的概念和特性,包括构造函数、explicit关键字、静态成员、友元以及内部类…

58 vue-cli 以及 webpack 提供的默认的插件, 配置

前言 vue-cli 这边作为驱动 webpack 的一个应用 它需要构造 webpack 所需要的上下文, 以及参数 这里 我们来关注一下 vue-cli 这边为 webpack 构造的参数 的相关处理 webpack 这边上下文的配置, 主要分为了几个部分, Entry, Output, Module, Resolve, Plugin, DevServer, O…

Linux下Qt生成程序崩溃文件

文章目录 1.背景2.Qt编译生成程序2.1.profile模式的本质 3.执行程序,得到core文件4.代码定位4.1.直接使用gdb4.2.使用QtCreator 5.总结6.题外话6.1.profile模式和debug模式的区别 1.背景 在使用Qt时,假如在windows,当软件崩溃时,…

太阳能光伏电子实验酸洗用PFA方槽耐受强酸碱耐高温

PFA清洗槽是四氟清洗桶后的升级款,主要用于半导体光伏光电等行业,一体成型,无需担心漏液,表面光滑无毛刺。 别名PFA浸泡桶、PFA酸缸、PFA方槽等,可定制尺寸,可配套盖子,盖子有PFA/PTFE两种材质…

uniapp:聊天消息列表(好友列表+私人单聊)支持App、H5、小程序

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 ⭐ 文章简介(效果图展示&#xff…

【SQL】1890. 2020年最后一次登录(简单写法;窗口函数写法)

前述 sql 中 between 的边界问题 ---- between 边界:闭区间,not between 边界:开区间 在 sql 中, between 边界:闭区间not between 边界:开区间 题目描述 leetcode题目:1890. 2020年最后一…

LC 235.二叉搜索树的最近公共祖先

235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大&…