ECS训练营第二天——搭建Docker环境

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 基于阿里云ECS搭建Docker环境和服务部署

简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

Docker名词解释:

镜像:Docker 镜像是容器应用打包的标准格式,是创建容器的模板。

容器:一个通过 Docker 镜像创建的运行时实例,一台主机可运行多个同一镜像的容器实例。

安装、启动

  1. 首先开通阿里云ECS资源,免费体验,还在等什么呢。

ECS资源

  1. 连接。

用 CMD Powershell Terminal均可, 我在此使用CMD

命令:ssh [username]@[ipaddress]

连接

  1. 安装Docker CE。
# 1. 安装Docker依赖库
yum install -y yum-utils device-mapper-persistent-data lvm2
# 2. 安装Docker CE的软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 3. 安装Docker CE
yum makecache fast
yum -y install docker-ce
# 4. 启动Docker服务
systemctl start docker
# 查看Docker启动情况
systemctl status docker

启动、查看

配置镜像加速

Docker的默认官方远程仓库是hub.docker.com,由于网络原因,下载一个Docker官方镜像可能会需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务ACR提供了官方的镜像站点,从而加速官方镜像的下载。下面介绍如何使用阿里云镜像仓库。

  1. 使用子账户登录阿里云。

子账户信息

在页面左侧资源栏点击 一键复制登录url,在浏览器中打开。进行RAM用户登录

在左侧产品与服务中搜索镜像

搜索镜像服务

单击容器镜像服务,若提示未开通服务,关闭即可。

  1. 单击【镜像中心】 > 【镜像加速器】,可以看到阿里云为您提供了一个专属的镜像加速地址。

查看加速地址

  1. 配置Docker仓库地址为在 【镜像加速器】中的加速器地址。
[root@i1kzth4Z ~]# ls /etc/docker/
key.json
[root@i1kzth4Z ~]# cat >> /etc/docker/daemon.json << EOF
> {
> "registry-mirrors": ["https://xxxx.aliyuncs.com"]
> }
> EOF
[root@i1kzth4Z ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://xxxx.aliyuncs.com"]
}
  1. 重新加载配置文件,重启服务。
# 加载配置文件
systemctl daemon-reload
# 重启服务
systemctl restart docker

Docker常用命令

docker search

根据名字搜索镜像

用法:docker search [OPTIONS] TERM

[root@iicxcxq7nz ~]# docker search nginx
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                              Official build of Nginx.                        13942               [OK]                
jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   1902                                    [OK]
richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable of…   791                                     [OK]
linuxserver/nginx                  An Nginx container, brought to you by LinuxS…   128                                     
jc21/nginx-proxy-manager           Docker container for managing Nginx proxy ho…   106                                     
tiangolo/nginx-rtmp                Docker image with Nginx using the nginx-rtmp…   101                                     [OK]

docker pull

从远程仓库拉去镜像

用法:docker pull [OPTIONS] NAME[:TAG|@DIGEST]

[root@iicxcxq7nz ~]# docker pull nginx:latest
latest: Pulling from library/nginx
bb79b6b2107f: Already exists 
111447d5894d: Pull complete 
a95689b8e6cb: Pull complete 
1a0022e444c2: Pull complete 
32b7488a3833: Pull complete 
Digest: sha256:ed7f815851b5299f616220a63edac69a4cc200e7f536a56e421988da82e44ed8
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

docker images

查看本地镜像列表

用法:docker images [OPTIONS] [REPOSITORY[:TAG]]

[root@iicxcxq7nz ~]# docker images nginx:latest
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f35646e83998        2 weeks ago         133MB
[root@iicxcxq7nz ~]# docker images
REPOSITORY                                                TAG                 IMAGE ID            CREATED             SIZE
nginx                                                     latest              f35646e83998        2 weeks ago         133MB
mysql                                                     5.7                 42cdba9f1b08        2 weeks ago         448MB
nginx                                                     1.12                4037a5562b03        2 years ago         108MB

docker run

通过镜像开始一个运行实例

用法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

[root@iicxcxq7nz ~]# docker run --name mysql \
-p 3306:3306 \
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /home/mysql/logs:/logs \
-v /home/mysql/data/mysql:/var/lib/mysql \ 
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.6 \

--name:设置容器实例名称

-p:宿主机与容器端口绑定

-v:挂载目录或数据卷,将容器内的文件夹与宿主机文件夹映射,方便修改容器内的文件。

-e:设置容器内MySQL服务Root用户密码

-d:后台守护运行,返回容器实例ID

docker ps

查看容器

用法:docker ps [OPTIONS]

参数:

-a:显示全部

-n <num>:显示最新运行的个容器

-l:显示最新创建的容器(包括所有状态)

-q:仅显示容器ID

-s:显示容器总大小

[root@iicxcxq7nz demo]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
33a5981c417d        nginx:latest        "/docker-entrypoint.…"   8 minutes ago       Up 8 minutes        0.0.0.0:8080->80/tcp   nginx-test
[root@iicxcxq7nz demo]# docker ps -s
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES               SIZE
33a5981c417d        nginx:latest        "/docker-entrypoint.…"   8 minutes ago       Up 8 minutes        0.0.0.0:8080->80/tcp   nginx-test          1.29kB (virtual 133MB)

搭建Nginx服务

  1. 拉取最新Nginx镜像。
docker pull nginx:latest
  1. 运行容器。
docker run --name nginx-test -p 8080:80 -d nginx:latest

运行结果如下

007.png

  1. 在浏览器地址栏输入http://<公网地址>:8080访问Nginx服务。

运行测试

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
深入理解Docker:为你的爬虫项目提供隔离环境
|
1月前
|
弹性计算 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`查看版本号。
284 79
|
3月前
|
存储 Linux Docker
docker在欧拉服务器上编译安装应该注意什么?如何操作?
【10月更文挑战第31天】docker在欧拉服务器上编译安装应该注意什么?如何操作?
114 2
|
2月前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
118 3
|
3月前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
582 1
|
4月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
848 3
|
4月前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
314 1
|
4月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
120 2
|
4月前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
1011 0
|
4月前
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
204 0