云服务器与Docker
文章目录
- 前言
- 一、云服务器
- 1.云服务器介绍
- 2.主要云服务提供商
- 3.云服务器优势
- 4.如何选择云服务器
- 5.有关文献
- 二、Docker
- 1.Docker简介
- (1)Docker是什么
- (2)Docker主要特点
- (3)Docker关键组件
- 2.Docker环境安装
- (1)Docker官网
- (2)相关命令
- (3)Docker环境配置
- 三、Docker基础操作
- 1.Docker镜像操作
- (1)列出镜像
- (2)拉取镜像
- (3)删除镜像
- 2.Docker容器操作
- (1)创建并运行容器
- (2)交互式容器
- (3)守护式容器
- (4)进入容器
- (5)查看容器
- (6)停止与启动容器
- (8)删除容器
- 总结
前言
在数字化转型的时代,云计算和容器技术成为了推动技术变革的核心力量。本文为读者提供云服务器和Docker容器的基础知识。无论您是刚接触云计算的新手,还是希望提升技术能力的开发者,希望本文都为您带来实用的指南。从选择适合的云服务器,到搭建Docker环境,再到实际操作Docker镜像与容器,内容较为全面且易于实践。
一、云服务器
1.云服务器介绍
云服务器,也称为虚拟私有服务器(VPS),是一种基于云计算技术的虚拟化服务。它允许用户通过互联网访问和使用服务器资源,而无需维护物理硬件。
云服务器是通过虚拟化技术在物理服务器上创建的多个虚拟实例。每个实例都拥有独立的操作系统、CPU、内存、存储和网络资源。
2.主要云服务提供商
- 腾讯云:提供多种云服务器产品,包括CVM,支持多种配置选项。
o 腾讯云CVM产品页面 - 阿里云:提供ECS云服务器,具备弹性伸缩和多样化配置。
o 阿里云ECS产品页面 - 华为云:提供HECS云服务器,强调安全、可靠和高性能。
o 华为云HECS产品页面
3.云服务器优势
灵活性:根据业务需求快速调整资源配置。
独立性:每个VPS拥有独立的操作系统和资源。
可靠性:云服务提供商通常提供高可用性和数据备份。
成本效益:相比物理服务器,云服务器成本更低,按需付费。
4.如何选择云服务器
当选择云服务器时,考虑以下因素:
- 操作系统:推荐选择Linux系统,特别是Ubuntu的最新版本,因为它提供了广泛的社区支持和安全性。
- CPU和内存:根据应用程序的需求选择合适的CPU核心数和内存大小。
- 存储空间:选择足够的存储空间以支持数据增长。
- 带宽:确保带宽满足流量需求,避免额外费用。
- 地域:选择数据中心的地理位置,以减少延迟并满足法规要求。
- 价格:比较不同云服务提供商的价格和优惠活动。
5.有关文献
(1)2022年阿里云、腾讯云、华为云服务器配置与价格对比,云服务器如何选!
(2)阿里云轻量级服务器和ecs的区别对比
(3)更多云服务器参考
二、Docker
1.Docker简介
(1)Docker是什么
Docker是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中。这个容器可以在任何支持Docker的机器上运行,无论是Linux还是Windows系统。
(2)Docker主要特点
- 容器化:Docker使用容器来隔离应用程序及其环境,确保在不同环境中的一致性。
- 可移植性:容器可以在任何安装了Docker的主机上运行,无需担心环境差异。
- 自动化部署:Docker可以自动化应用程序的部署过程,简化配置和管理工作。
- 版本控制和组件重用:Docker支持容器镜像的版本控制,便于组件的重用和共享。
- 微服务架构:Docker容器非常适合微服务架构,有助于实现服务的解耦和独立部署。
(3)Docker关键组件
- Docker Daemon(守护进程):
o 在宿主机上运行的后台服务。
o 负责构建、运行和分发容器。 - Docker Client(客户端):
o 与Docker Daemon交互的用户界面发送请求
o 给Daemon以执行命令,如构建镜像、运行容器等。 - Docker Image(镜像):
o 只读模板,包含了运行容器所需的所有内容一代码、运行时、库、环境变量和配置文件。
o 镜像是分层的,允许共享和重用。 - Docker Container(容器):
o 镜像的运行实例。
o 容器是隔离的沙盒,拥有自己的文件系统、网络设置、进程空间等。
2.Docker环境安装
(1)Docker官网
官网: https://www.docker.com/
自行上网查阅资料于 kali 上安装配置 docker
(2)相关命令
● 查看docker服务状态
systemctl status docker
● 启动docker服务
systemctl start docker
● 开启自启动docker服务
systemctl enable docker
● 安装指令:最新版 docker 自带 compose 命令选项,跟 docker-compose 使用是一样的,可以不用额外安装即可使用
docker compose
(3)Docker环境配置
配置Docker国内镜像:由于很多 docker 镜像存储于位于国外的 dockerhub 镜像仓库中,由于国内网络访问国外服务存在问题,我们可以通过配置国内镜像,从而加快 docker 镜像的拉取
三、Docker基础操作
1.Docker镜像操作
(1)列出镜像
● 要查看本地主机上的Docker镜像列表,可以使用以下命令:
docker image ls -a
docker images -a
● 显示如下信息
名称 | 描述 |
---|---|
REPOSITORY | 镜像所在的仓库名称 |
TAG | 镜像标签 |
IMAGE ID | 镜像 ID |
CREATED | 镜像的创建日期(不是获取该镜像的日期) |
SIZE | 镜像大小 |
(2)拉取镜像
● 要下载公共仓库中的镜像,可以使用docker image pull
命令,后跟镜像的名称和标签。
例如,拉取hello-world
镜像:
sudo docker image pull docker.io/library/hello-world:latest
命令 | 解释 |
---|---|
docker | Docker 命令行工具的命令前缀 |
image | 指定 Docker 命令作用于镜像 |
pull | 拉取操作,用于从远程仓库下载镜像到本地 |
docker.io | Docker Hub 的域名,是 Docker 官方镜像仓库的地址 |
library | Docker Hub 上的默认命名空间,用于存放官方提供的镜像 |
hello-world | 镜像的名称 |
latest | 镜像的标签,latest 是 Docker 镜像的默认标签 |
● docker.io
:这是Docker Hub的域名,是Docker官方镜像仓库的地址。通常在不指定仓库地址的
情况下,Docker会默认使用docker.io
。
sudo docker image pull library/hello-world
● library
:这是Docker Hub上的默认命名空间,用于存放官方提供的镜像。使用 library
命名空可以确保你拉取的是官方维护的镜像。由于Docker官方的镜像默认位于 library
组下,因此可以省略 library
sudo docker image pull hello-world
● hello-world
:这是镜像的名称。hello-world是一个非常基础的镜像,通常用于验证Docker是
否安装成功。
● latest
:这是镜像的标签。Docker镜像可以有多个标签,用于区分不同的版本。latest
标签通岸
用于表示镜像的最新版本。不指定镜像标签,默认拉取latest
标签镜像
(3)删除镜像
要删除一个镜像,可以使用docker image rm
或docker rmi
命令,后面跟上镜像名称或镜像ID。
● 指定镜像名称
sudo docker image rm hello-world
● 指定镜像ID
例如,hello-world的镜像ID为feb5d4fea6a5
,每个人的ID大概率是不一样的,请修改为自己镜像的实际lD
sudo docker rmi feb5d4fea6a5
注意:
● 如果镜像正在被一个或多个容器使用,则无法删除。需要先删除使用该镜像的容器。
● 在执行镜像操作时,请确保您使用的是正确的镜像名称和标签。
● 删除镜像前,请确保没有运行的容器依赖于该镜像,以免影响容器的正常运行。
2.Docker容器操作
(1)创建并运行容器
创建并运行一个容器,可以使用 docker run
命令,格式如下:
docker run [option] image_name [command]
● option是可选参数
● image_name是镜像的名称
● command是在容器启动时执行的命令
(2)交互式容器
创建一个交互式容器,命名为 mycentos
,并允许用户登录并执行命令:
sudo docker run -it --name=mycentos centos /bin/bash
● -i
:以交互模式运行容器。
● -t
:分配一个伪终端,容器启动后会进入容器命令行
● --name
:为容器指定一个名称。
● /bin/bash
:启动容器后在容器中打开一个bash
在容器中可以随意执行linux命令,就是一个ubuntu的环境,当执行exit命令退出时,该容器也随之停止。
(3)守护式容器
创建一个守护式容器,命名为 mycentos2
,容器在后台运行,不会自动登录:
sudo docker run -dit --name=mycentos2 centos
● -i
:以交互模式运行容器。
● -t
:分配一个伪终端,容器启动后会进入容器命令行
● -d
:以守护式模式运行容器,在后台运行。
● --name
:为容器指定一个名称。
如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。在容器内部exit退出时,容器也不会停止。
(4)进入容器
要进入正在运行的容器:
docker exec -it container_name_or_id command
● exec
:用于在已经运行的容器中执行命令
● -i
:以交互模式运行容器。
● -t
:分配一个伪终端,容器启动后会进入容器命令行
● container_name_or_id
表示容器名或容器id
● command
表示进入容器后执行的第一个命令
例如,进入名为mycentos2的容器并执行/bin/bash
,打开一个Bash shell终端:
sudo docker exec -it mycentos2 /bin/bash
注意:
● 容器必须已经存在并且正在运行,否则这个命令会失败。
● 如果容器中没有安装Bash,这个命令也会失败。通常,大多数基于Linux的镜像都会包含Bash,但某些轻量级的镜像可能不包含。
● 如果你想要在容器中执行其他命令而不是Bash,你可以将 /bin/bash
替换为其他命令。
(5)查看容器
● 列出正在运行的容器:
sudo docker container ls
● 列出所有容器(包括停止的):
sudo docker container ls --all
● 简介命令:
sudo docker ps
sudo docker ps -a
(6)停止与启动容器
● 停止一个已经在运行的容器:
docker container stop 容器名或容器id
docker stop 容器名或容器id
● 启动一个已经停止的容器
docker container start 容器名或容器id
docker start 容器名或容器id
● 强制停止一个运行中的容器:
docker container kill 容器名或容器id
docker kill 容器名或容器id
(8)删除容器
● 删除一个容器:
docker container rm 容器名或容器id
docker rm 容器名或容器id
注意:删除容器前,请确保容器已经停止。如果容器正在运行,需要先停止再删除。
总结
通过本文的学习,我们了解了云服务器的概念及其选择依据,熟悉了主流云服务商的特点与产品优势;同时,简单掌握了Docker的核心功能、环境搭建及基础操作。Docker的容器化技术为开发和部署提供了高度灵活性与效率,结合其强大的镜像管理与微服务支持,可以满足多样化的业务需求。更进一步,希望可以借助Docker的容器化特性,搭建专属的靶场环境,模拟网络攻击场景,提升技术实战能力。
如果你觉得这篇文章对你有帮助,欢迎点赞,你的支持是我分享更多免费优质内容的动力!