当前位置:主页 > 查看内容

阿里云:快速搭建Docker环境

发布时间:2021-08-15 00:00| 位朋友查看

简介:一、实验内容与涉及知识1.实验内容 在阿里云申请 配置一台CentOS 7.7的ECS实例 云服务器 。基于ECS实例快速搭建一个Docker环境 并在Docker环境中部署一个Nginx服务 再将CounterWebApp制作镜像并发布到DockerHub 然后部署上线。 2.涉及的相关知识 1 容器技术……
一、实验内容与涉及知识1.实验内容

阿里云申请 配置一台CentOS 7.7的ECS实例 云服务器 。基于ECS实例快速搭建一个Docker环境 并在Docker环境中部署一个Nginx服务 再将CounterWebApp制作镜像并发布到DockerHub 然后部署上线。

2.涉及的相关知识

1 容器技术

容器是一个允许我们在资源隔离的过程中 运行应用程序和其依赖项的 、轻量的 、操作系统级别的虚拟化技术 运行应用程序所需的所有必要组件都打包为单个镜像 这个镜像是可以重复使用的。当镜像运行时 它是运行在独立的环境中 并不会和其他的应用共享主机操作系统的内存、CPU或磁盘。这保证了容器内的进程不会影响到容器外的任何进程。

2 Docker的原理

Docker 容器的实质就是一个虚拟环境 容器内包含单一应用程序和它所需的全部依赖环境 相当于最小化的虚拟机。它的状态不会影响到宿主机 反过来宿主机的状态也不会影响到容器。只有容器预先设置好的端口和存储卷才能与外界环境通信 除此之外 对外界而言容器就是一个黑箱 外界看不到它的内在 也不需要关心。

Docker 的部署较简单 容器从镜像创建 而镜像内包含所需的全部依赖环境 做到了一个镜像直接部署 不再需要修改服务器的系统配置。注意 Docker 镜像 Image 是无状态的 而容器 Container 是有状态的 容器在运行时生成的数据是被保存在容器内的 这就是说容器内的进程生成的临时文件仍然被存放在容器内 并且当整个容器被删除时也会跟着被删除。如果生成的文件包含重要资料 则需要把对应生成的目录指向宿主机目录或者数据卷容器。数据卷容器与普通容器没有区别 只不过里面不包含应用进程 只为了保存数据而存在的容器。不要在容器内保存重要数据 除已挂载的数据卷位置 也就是说 容器的内部状态应该是不重要的 容器可以随时删除随时新建。不应在容器内部保存配置文件 而应将调试确认好的配置文件移出容器并妥善保存。

3 一个完整的Docker 以下几个部分组成

Docker Client客户端
Docker Daemon守护进程
Docker Image镜像
Docker Container容器
二、实验环境

硬件 PC 微型计算机、1G以上内存 40G以上硬盘

系统环境:Window、Linux

软件 阿里云服务器、FinalShell

三、实验准备

1.申请阿里云账号

申请阿里云账号并领取学生优惠

登录阿里云 https://help.aliyun.com/learn/getting-started.html 官网完成阿里云的注册——实名认证——学生认证——专享优惠购买 需要完成模拟使用与成长计划考试

2.下载SSH工具 这里我下载的是FinalShell。

四、实验步骤第一步 连接ECS服务器

1.打开FinalShell 新建SSH连接 Linux 填写信息后点击确认

image-20210615161703277.png

2.在终端中连接ECS 用户名以及ip为创建ECS服务器的登录名和公网Ip

image-20210615162157105.png

登陆成功后会显示如下信息

image-20210616141537886.png

第二步 安装Docker CE

Docker有两个分支版本 Docker CE和Docker EE 即社区版和企业版。本教程基于CentOS 8安装Docker CE。

1.安装Docker的依赖库

yum install -y yum-utils device-mapper-persistent-data lvm2

输入结果如下

image-20210615173133090.png

2.添加Docker CE的软件源信息

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

输入结果如下

image-20210615173331069.png

3.安装Docker CE

yum makecache fast

yum -y install docker-ce

输入结果如下

image-20210615173422936.png

image-20210616140041959.png

4.启动Docker服务

systemctl start docker

第三步 使用Docker安装Nginx服务

1.查看Docker镜像仓库Nginx的可用版本

docker search nginx

命令输出结果如下所示

image-20210616141043220.png

2.拉取最新版的Nginx镜像

docker pull nginx:latest

命令输出结果如下所示

image-20210616141338492.png

3.查看本地镜像 我们可以看见nginx

docker images

命令输出结果如下所示

image-20210616141435411.png

4.运行容器

docker run --name nginx-test -p 8080:80 -d nginx

命令参数说明

--name nginx-test 容器名称。
-p 8080:80 端口进行映射 将本地8080端口映射到容器内部的80端口。
-d nginx 设置容器在后台一直运行。
命令输出结果如下所示

image-20210616141903675.png

5.在浏览器访问Nginx

1 换到实列列表 点击管理

image-20210616144414482.png

2 点击安全组

image-20210616144158536.png

3 点击配置规则——快速添加增加选择HTTP 8080

添加成功显示如下

image-20210616145544752.png

4 配置完成后 访问公网IP 即可访问nginx

image-20210616145450937.png

第四步 在本地虚拟机制作镜像

1.从gitlab上拉取已经开发好的CounterWebApp项目

git clone https://gitlab.com/bobyuan/20190224_cloudappdev_code.git

cd 20190224_cloudappdev_code/spring_maven_webapp/CounterWebApp

输出结果如图下

image-20210617144555853.png

2.将项目打包成war文件

mvn package

输出结果如下

image-20210617145059517.png

打包成功结果输出如下

image-20210617145254751.png

3.查看是否打包成功

ls -l target/CounterWebApp.war

image-20210617145516858.png

4.在war包相同路径创建一个Dockerfile文件写以下语句

from tomcat

MAINTAINER pinkxu 2247818785 qq.com

COPY CounterWebApp.war /usr/local/tomcat/webapps

输入结果如下 这里的pinkxu 和邮箱是申请Dockerhub账号的用户名和邮箱

image-20210617152158359.png

5.构建自己的镜像

docker build .

输出结果如图下

image-20210617152219092.png

可以看到已经构建成功 只是没有给镜像命名 执行以下命令给镜像命名以及指定版本并重新构建

docker build -t pinkxu:latest .

输出结果如下

image-20210617152308435.png

第五步 将镜像发布到DockerHub

1.在docker上登Dockehub

docker login --username pinkxu

输出显示结果如下

image-20210617152641902.png

2.在dockerhub上创建仓库

结果如图下所示

image-20210616171912882.png

3.给镜像打tag 一定要在tag前面加上用户名

docker tag pinkxu pinkxu/cloudxu:v1

输出显示结果如下

image-20210617152729421.png

4.上传镜像到Dockerhub

docker push pinkxu/cloudxu:v1

输入结果如下

image-20210617152905195.png

5.在Dockerhub中看见上传的镜像

image-20210617152920869.png

第六步 在阿里云上部署镜像

1.从dockerhub上拉取counterwebapp镜像到阿里云服务器上

docker pull pinkxu/cloudxu:v1

输出结果如图下

image-20210617153544468.png

2.通过端口运行镜像

docker run -d -p 8080:8080 pinkxu

输出结果如下

image-20210617154136154.png

3.在浏览器输入120.79.178.135 8080/war包名 运行war包

输出结果如下

image-20210617154220887.png


本文转自网络,原文链接:https://developer.aliyun.com/article/787079
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:ECS使用初体验 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐