基于ECS快速搭建Docker环境
什么是docker?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。简言之,就是可以在Linux上镜像使用的这么一个容器。
docker可以在什么情况下使用
- web应用自动化打包发布,像tomcat应用的发布。
- 自动化测试和持续集成、发布
- 在服务型环境中部署和调整数据库或其他的后台应用
- 搭建paas环境
来源地址:https://www.php.cn/docker/446654.html
例如:华为云学院上的沙盒实验室,就是docker的一个应用(https://lab.huaweicloud.com/)
上面的实验也是挺有意思的
一、创建并连接ECS服务器
我下面实验使用的是阿里云体验版一小时的ECS服务器
1.创建成功后会有如下内容
https://s1.ax1x.com/2020/09/24/0Svx6U.jpg
2.使用xshell6.0连接创建的ECS服务器
https://s1.ax1x.com/2020/09/24/0SvvlT.png
二、安装Docker CE
docker有两个版本,Docker CE:社区版、Docker EE:企业版
本次基于CentOS 7.0 安装Docker CE
1.安装docker的依赖库
yum install -y yum-utils device-mapper-persistent-data lvm2
https://s1.ax1x.com/2020/09/24/0SvrOe.png
https://s1.ax1x.com/2020/09/24/0SvBQO.png
2.添加Docker CE软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
https://s1.ax1x.com/2020/09/24/0Sv0SK.png
3.安装Docker CE
yum makecache fast
yum -y install docker-ce
https://s1.ax1x.com/2020/09/24/0SvyeH.png
https://s1.ax1x.com/2020/09/24/0SvDyD.png
4.启动并查看Docker服务
systemctl start docker
systemctl status docker
https://s1.ax1x.com/2020/09/24/0Sv2FI.png
三、配置阿里云镜像仓库(镜像加速)
Docker的默认远程仓库是hub.docker.com,使用这个远程仓库下载速度缓慢,甚至会下载失败。
阿里云容器镜像服务ACR有提供官方的镜像,从而加速下载
类似的还有清华镜像,网易镜像等等,下载软件包多半会使用国内的镜像,速度会很快。
本次实验使用阿里云容器镜像仓库
1.阿里云控制台登陆
使用浏览器无痕窗口登陆
https://s1.ax1x.com/2020/09/24/0SvRYt.png
2.搜索容器镜像
https://s1.ax1x.com/2020/09/24/0SvWfP.png
3.选择镜像加速器
https://s1.ax1x.com/2020/09/24/0SvhSf.png
https://s1.ax1x.com/2020/09/24/0Sv4l8.png
先选择你的ECS操作系统,在复制黄框中的内容到ECS服务器上
4.在ECS服务器上配置专属镜像加速地址
https://s1.ax1x.com/2020/09/24/0Sv56S.png
5.重新加载服务配置文件,并重启Docker服务
systemctl daemon-reload
systemctl restart docker
四、使用Docker安装Nginx服务
1.使用Docker获取Nginx
docker search nginx
https://s1.ax1x.com/2020/09/24/0SvTmQ.png
2.拉取Nginx最新的镜像
docker pull nginx:latest
https://s1.ax1x.com/2020/09/24/0SvHTs.png
3.查看本地镜像
docker images
https://s1.ax1x.com/2020/09/24/0Sv7wj.png
4.设置并运行容器
docker run --name nginx-test -p 8080:80 -d nginx
https://s1.ax1x.com/2020/09/24/0SvLYq.png
说明:
--name nginx-text:容器名称
-p 8080:80:端口映射,将本地8080端口映射到容器内部的80端口
-d nginx:设置容器一直在后台一直运行
容器的端口映射: docker容器在启动的时候,如果不指定端口映射参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的
原理如下图:
https://s1.ax1x.com/2020/09/24/0pPv5Q.png
具体docker端口映射的原理:https://blog.csdn.net/annita2019/article/details/108680031