前段时间和朋友开发电商分布式项目作为学习,由于远程开发的需要,需要将redis,mysql,mq等一些基础的服务放在阿里云服务器上,并使用docker来安装这些服务,使容器服务化。

1.使用docker的优势

将 Redis 和 MySQL 等数据库直接安装在云服务器上是可行的,但使用 Docker 容器化这些服务有一些优势和考虑因素:

  • 环境隔离:Docker 容器提供了隔离环境,避免了应用之间的干扰。每个容器都可以拥有自己独立的运行环境和依赖项,这有助于防止版本冲突和其他潜在的问题。
  • 便于管理和部署:使用 Docker 可以更轻松地管理和部署多个服务。您可以使用容器编排工具(如 Docker Compose 或 Kubernetes)来定义、管理和扩展多个容器化的服务,使得管理更为简单。
  • 版本控制:通过 Docker 镜像,您可以轻松控制服务的版本。可以选择特定版本的 Redis 或 MySQL 镜像,并在需要时方便地升级或回退。
  • 灵活性和便携性:使用 Docker 可以更轻松地在不同环境中移植和部署您的应用和服务。无论是在开发、测试还是生产环境中,都能够更方便地部署相同的镜像。

尽管直接在云服务器上安装这些服务是可行的,但是使用 Docker 可以提供更多的灵活性、便携性和可维护性,特别是在复杂的应用场景下或需要频繁部署和更新时,Docker 可以更好地管理服务。

所以,使用 Docker 来拉取镜像并运行 Redis 和 MySQL 是为了更好地利用容器化技术的便利性和优势。

2.Docker 简介

  1. Docker 是一种容器化平台,可以轻松打包应用程序及其依赖项,使其能够在任何环境中快速、可靠地运行。它利用容器技术,将应用程序和其所需的依赖项封装在一个独立的、标准化的单元中,称为容器。这使得应用程序在不同环境中具备一致性,并且更容易进行部署和扩展。
  2. Docker 中每一个容器都是独立运行的,相当于一个独立的 Linux 系统,如果想便捷地修改容器内的文件,我们就需要把容器目录挂载到主机的目录上。容器端口类似,外界无法直接访问容器内部的端口,需要先将容器端口映射到 Linux 主机端口上才能访问。

3.Docker 的基本概念

在开始使用 Docker 之前,有几个重要的概念需要了解:

镜像(Image)

镜像是 Docker 容器的基础。它包含了运行容器所需的所有文件和依赖项。可以将镜像看作是一个应用程序的打包模板。

容器(Container)

容器是从镜像创建的运行实例。每个容器都是一个独立的、隔离的环境,可以在其中运行应用程序。多个容器可以基于同一个镜像创建,并且彼此之间相互隔离。

仓库(Repository)

仓库是存储 Docker 镜像的地方。它可以是本地仓库或者是远程仓库。Docker Hub 是一个常用的公共仓库,您可以在其中找到许多常用的镜像。

4.Docker 安装

本项目所需要许多的软件都安装 Linux 服务器上,这里我们这个项目就在阿里云服务器上使用 docker 进行项目软件安装(这里也可以使用本地虚拟机进行构建),这里我们使用的是 Ubuntu 18.04 64位 对 docker 进行安装(若使用 CentOS7 可自行去网上查询安装 docker)
下面命令注意在root用户下运行,避免重复 sudo 省略(若不是 root 用户在此之前加上 sudo 前缀)

1.删除老版本

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

2.更新及安装工具软件

# 1、更新系统里的所有的能更新的软件
apt-get update

# 2、安装几个工具软件 
# 	\ 续行符号: 继续到下一行
# 	curl:是字符界面的浏览器
apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
    
# 3、增加一个docker的官方GPG key:
# 	gpgkey:是用来验证软件的真伪 ——防伪的
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 4、下载仓库文件
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3.安装 docker

# 再次更新系统
apt-get update

# 安装docker-ce软件
apt-get install docker-ce docker-ce-cli containerd.io -y

5、Docker 使用

1.启动 docker

systemctl start docker

2.设置开机启动 docker

# 检查docker版本
docker -v

# 查看docker已有镜像
docker images

# 设置docker开机启动
systemctl enable docker

3.设置国内镜像仓库(Ubuntu 或 CentOS7)

# 创建文件
sudo mkdir -p /etc/docker
# 修改配置, 设置镜像
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://gclmpric.mirror.aliyuncs.com"]
}
EOF
# 重启后台线程
sudo systemctl daemon-reload
# 重启docker
sudo systemctl restart docker

拉取镜像
使用 docker pull 命令从仓库中拉取镜像。例如,要拉取官方的 Ubuntu 镜像,可以执行以下命令:

docker pull ubuntu

运行容器
一旦镜像被拉取到本地,您可以使用 docker run 命令来创建并运行一个容器。例如,要在 Ubuntu 镜像上启动一个新的容器,并进入其 shell,可以执行以下命令:

docker run -it ubuntu /bin/bash

管理容器
您可以使用一些常用的命令来管理容器,例如:

docker ps:查看正在运行的容器。
docker stop <container_id>:停止指定的容器。
docker start <container_id>:启动已停止的容器。
docker rm <container_id>:删除容器。