前段时间和朋友开发电商分布式项目作为学习,由于远程开发的需要,需要将redis,mysql,mq等一些基础的服务放在阿里云服务器上,并使用docker来安装这些服务,使容器服务化。
将 Redis 和 MySQL 等数据库直接安装在云服务器上是可行的,但使用 Docker 容器化这些服务有一些优势和考虑因素:
环境隔离:Docker 容器提供了隔离环境,避免了应用之间的干扰。每个容器都可以拥有自己独立的运行环境和依赖项,这有助于防止版本冲突和其他潜在的问题。
便于管理和部署:使用 Docker 可以更轻松地管理和部署多个服务。您可以使用容器编排工具(如 Docker Compose 或 Kubernetes)来定义、管理和扩展多个容器化的服务,使得管理更为简单。
版本控制:通过 Docker 镜像,您可以轻松控制服务的版本。可以选择特定版本的 Redis 或 MySQL 镜像,并在需要时方便地升级或回退。
灵活性和便携性:使用 Docker 可以更轻松地在不同环境中移植和部署您的应用和服务。无论是在开发、测试还是生产环境中,都能够更方便地部署相同的镜像。
尽管直接在云服务器上安装这些服务是可行的,但是使用 Docker 可以提供更多的灵活性、便携性和可维护性,特别是在复杂的应用场景下或需要频繁部署和更新时,Docker 可以更好地管理服务。
所以,使用 Docker 来拉取镜像并运行 Redis 和 MySQL 是为了更好地利用容器化技术的便利性和优势。
在开始使用 Docker 之前,有几个重要的概念需要了解:
镜像是 Docker 容器的基础。它包含了运行容器所需的所有文件和依赖项。可以将镜像看作是一个应用程序的打包模板。
容器是从镜像创建的运行实例。每个容器都是一个独立的、隔离的环境,可以在其中运行应用程序。多个容器可以基于同一个镜像创建,并且彼此之间相互隔离。
仓库是存储 Docker 镜像的地方。它可以是本地仓库或者是远程仓库。Docker Hub 是一个常用的公共仓库,您可以在其中找到许多常用的镜像。
本项目所需要许多的软件都安装 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
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
docker start
docker rm