云服务ECS的docker使用之旅

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 内容包括docker安装、docker的简单使用(镜像拉取、镜像推送至云上镜像库)等
在写docker使用之旅前先来给大家聊聊我对飞天计划的感受,我是一个大三在读,软件工程专业的程序媛,因为专业+好奇的原因我想去学习关于云服务器的一些知识及操作。所以在官网查找服务器的时候看到了这个飞天加速计划就如及时雨一般给了我一个很棒的机会。这个飞天计划对于大学生来说真的很实用且适用,让我可以积累实验操作经验。对于我的实验过程我选择在平台上写一篇文章来记录一下。

Docker的介绍

Docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。它能大大提高开发、测试、运维人员的工作效率,不用再把时间浪费在环境配置、用户权限等等问题上。

Docker的三个概念

1.镜像(Image):类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。例如一个cnetos镜像就是一个包含centos操作系统环境的模板。
2.容器(Container):类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。
3.仓库(Repository):类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别:注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分,比如Ubuntu仓库存放有多个版本(12.04、14.04等)的Ubuntu镜像。
(ps:概念引用笑虎的文章https://zhuanlan.zhihu.com/p/23599229# Docker的安装)

用简单可爱的方式来表述一下就是,镜像是一只鲸鱼,每个仓库就是一个港口,每个容器就是一个集装箱,程序员就是码头工人。码头工人在集装箱(容器)中将程序写好后进行打包,个个容器之间互不影响,码头工人再将集装箱放到鲸鱼身上(镜像),鲸鱼就可以通过各个港口(仓库)环游世界,而且集装箱(容器)里的东西(代码)都是一模一样的不会发生改变。同时鲸鱼可以在各个港口来回快速的游动,保证码头工人的生产效率。

Docker的安装

实验环境:centos8
1.连接远程服务器后,先将环境内老版本的docker删除,现在的docker引擎被称为docker-ce。

sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine  

2.安装yum-utils包

sudo yum install -y yum-utils  

3.设置稳定存储库
①docker自己有一个存储库,但是速度会比较慢

sudo yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo

②我们可以使用阿里云的镜像加速器

4.开始安装docker引擎

sudo yum install docker-ce docker-ce-cli containerd.io

5.启动 Docker。

 sudo systemctl start docker

6.通过运行hello-world 映像验证 Docker Engine 是否已正确安装。

 sudo docker run hello-world

Docker拉取nginx

1.在仓库中查询nginx镜像

docker search nginx

2.下载nginx镜像

docker pull nginx

3.通过docker的nginx镜像启动一个简单的nginx服务

docker run -it -d -p 80:80 --name zlx-ngnix nginx
docker run -it -d -p [映射端口] --name [容器名称] nginx[版本(可指定)]  

4.在云服务器设置安全组,开放端口
image.png
image.png
image.png
5.开放好端口后我们就可以来查看页面啦~
在网页输入你的公网IP,例如:8.130.181.50
image.png
6.通过nginx访问页面
①先来配置一下我们的nginx,新建文件夹,conf和conf.d分别用于保存配置文件,html用于放置静态文件,logs用于保存日志

mkdir -p /home/docker/nginx/conf/conf.d
mkdir -p /home/docker/nginx/html
mkdir -p /home/docker/nginx/logs

②查看我们的docker进程,找到zlx-ngnix容器所对应的ID拷贝

  docker ps

③拷贝容器中默认的配置文件

docker cp [容器ID]:/etc/nginx/nginx.conf /home/docker/nginx/conf/nginx.conf
docker cp [容器ID]:/etc/nginx/conf.d /home/docker/nginx/conf
docker cp [容器ID]:/usr/share/nginx/html /home/docker/nginx

④拷贝完之后就停止并删除容器

docker stop [容器ID]
docker rm [容器ID]

⑤启动服务

docker run \
-p 80:80 \
--name zlx-ngnix \
--restart=always \
-v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/docker/nginx/html:/usr/share/nginx/html \
-v /home/docker/nginx/logs:/var/log/nginx \
-d \
nginx

⑥进入容器、容器重启、重新加载

docker exec -it 容器id /bin/bash
docker exec -t 容器id nginx -t
docker exec -t 容器id nginx -s reload  

⑦添加一个hello.html文件,并在页面显示hello nginx

cd /home/docker/nginx/html
vim hello.html   

⑧查看我们的页面
image.png

Docker镜像上传到云端仓库

1.我们先进入到阿里云的容器镜像服务
image.png
2.创建个人实例、镜像仓库、命名空间
成功后会得到一个镜像仓库
image.png
image.png
3.按照操作指南,登录阿里云Docker Registry

docker tag [容器ID] registry.cn-hangzhou.aliyuncs.com/ipseach/acca:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/ipseach/acca:[镜像版本号]

4.成功后即可得到一个镜像版本
image.png
5.通过pull命令又可以拉取到你的镜像了

docker pull registry.cn-hangzhou.aliyuncs.com/ipseach/acca:[镜像版本号]
通过几天的粗略学习,在使用云服务后对于docker的理解更加深刻,能有这样一次的学习机会很赞,测试了docker-ce的镜像拉取,容器建立、容器的测试、数据卷、镜像的上传,docker-compose的简单运行等等。我希望以后类似的活动能越来越多,能够更好的帮助大学生进行实践操作,希望开发者社区越来越好,提供更多的学习资源。
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
154 78
|
2月前
|
存储 Linux Docker
docker在欧拉服务器上编译安装应该注意什么?如何操作?
【10月更文挑战第31天】docker在欧拉服务器上编译安装应该注意什么?如何操作?
100 2
|
21天前
|
弹性计算 运维 监控
云产品评测:云服务诊断 — ECS实例健康状态与诊断功能体验
作为一名运维工程师,我日常管理和维护云资源,确保服务稳定运行。阿里云的云服务诊断功能提供了便捷的方式实时了解和优化ECS实例的健康状态。通过健康状态功能,我能够查看CPU、内存等指标,及时发现并解决性能瓶颈,提升了约30%的工作效率。诊断功能则帮助我快速定位复杂问题,减少了40%的诊断时间,并提供详细的优化建议。尽管功能已很强大,但仍建议进一步细化诊断结果和增加自定义告警选项,以提升使用体验。我非常推荐此工具给其他运维人员。
64 22
|
1月前
|
弹性计算 运维 Serverless
产品测评 | ECS的健康保障新助手——云服务诊断
本文评测了阿里云的云服务诊断工具,该工具旨在帮助运维工程师和开发者快速定位和解决云资源问题。工具提供了“健康状态”和“诊断”两大核心功能,能够实时监控云资源状态,排查如网站无法访问、ECS故障等多种问题,并给出修复建议。该工具显著提升了排障效率,但在文档清晰度、功能描述准确性及部分功能实现上仍有改进空间。总体而言,该工具值得推荐给其他用户或团队使用。
|
3月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
662 3
|
3月前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
271 1
|
3月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
87 2
|
3月前
|
前端开发 开发工具 git
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
48 5
|
3月前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
777 0
|
3月前
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
93 0