【服务器部署篇】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 dockersystemctl 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.hqwc.cn/news/596261.html

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

相关文章

【自用笔记】【大数据】

1 mapreduce (1)Map任务的数量:由输入数据的大小决定的,如文件数量和大小、HDFS块大小以及FileInputFormat的设置等。每个MapSlot可以运行一个Map任务 (2)Reduce任务的数量(分区数)&…

配置Mysql集群主从复制报错

配置Mysql集群主从复制报错: 我在master创建了一个数据库(demo_ds_0),然后又快速删除了。然后又再次创建了 demo_ds_0, 发现 slave 数据库没有将 demo_ds_0 库同步过来。 后面在 slave 数据库中执行 show slave status 发现 SLave_IO_Running 字段是 …

练习 17 Web [极客大挑战 2019]PHP

常见的网站源码备份文件名和后缀,反序列化攻击 unserialize():wakeup绕过,private类以及属性序列化后的%00修改 开靶机 提到”备份“ 那看看有没有backup.php啥的 如果网站存在备份文件,常见的备份文件后缀名有:“.gi…

开源代码分享(17)-基于足球队训练算法(Football Team Training Algorithm,FTTA)的组合风速预测

参考文献: [1]Tian Z, Gai M. Football team training algorithm: A novel sport-inspired meta-heuristic optimization algorithm for global optimization[J]. Expert Systems with Applications, 2024, 245: 123088. 1.算法基本原理 足球队训练算法&#xff0…

练习14 Web [极客大挑战 2019]Upload

phtml格式绕过,burp修改content-type绕过,常见的文件上传存放目录名 题目就叫upload,打开靶机 直接上传一个图片格式的一句话木马,返回如下: 提交练习5和9中的两种可以执行图片格式php代码的文件,修改con…

前端三剑客 —— CSS (第四节)

目录 内容回顾: 1.常见样式 2.特殊样式 特殊样式 过滤效果 动画效果 动画案例: 渐变效果 其他效果: 多列效果 字体图标(icon) 内容回顾: 1.常见样式 text-shadow x轴 y轴 阴影的模糊程度 阴影的…

蓝桥杯-冶炼金属(二分求最大最小)

P9240 [蓝桥杯 2023 省 B] 冶炼金属 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 二分做法&#xff1a; #include<bits/stdc.h> using namespace std; #define int long long const int N 1e410; int n,a,b; int v[N],cnt[N]; int check(int x){for(int i1;i<n;i…

JS详解-设计模式

工厂模式&#xff1a; 单例模式&#xff1a; // 1、定义一个类class SingleTon{// 2、添加私有静态属性static #instance// 3、添加静态方法static getInstance(){// 4、判断实例是否存在if(!this.#instance){// 5、实例不存在&#xff0c;创建实例this.#instance new Single…

[AIGC] SpringMVC, Filter, Interceptor之间关系详解

在Web应用开发过程中&#xff0c;我们经常需要处理各样的HTTP请求和响应。在Spring框架中&#xff0c;我们主要借助SpringMVC、Filter和Interceptor来处理这些任务。那么&#xff0c;这三者之间有什么关系&#xff0c;又分别扮演着什么角色呢&#xff1f;本文将带你一探究竟。 …

VS Code 配置 cmake

CMake 用法参考 CMake学习 cmake使用详细教程&#xff08;日常使用这一篇就足够了&#xff09;_cmake教程-CSDN博客 手动添加 CMake 编译器的搜索路径 如果没有设置上面的路径&#xff0c;有些编译器是找不到的 指定cmake 生成文件的路径 生成makefile 等文件的路径 可以指…

Linux网卡IP地址配置错误的影响

在Linux系统中&#xff0c;网络配置是保持系统顺畅运行的关键一环。正确配置网卡的IP地址对于确保网络通信的准确性和效率至关重要。然而&#xff0c;如果在这个过程中发生错误&#xff0c;可能会带来一系列问题。让我们一起探讨一下&#xff0c;如果Linux网卡的IP地址配置错误…

网络基础(1)

以下是网络部分整体的学习路线&#xff1a; 网络的发展历程 因为人与人之间是需要合作去完成一些任务的&#xff0c;这也就意味着计算器之间也是需要互相"沟通"的。因为计算机也是人所使用的工具&#xff0c;人都需要互相协作&#xff0c;也就注定了计算机也是需要互…