阿里云镜像地址获取,并安装 docker的mysql和nginx等服务,java,python,ffmpeg,go等环境

阿里云镜像地址获取,并安装 docker的mysql和nginx等服务,java,python,ffmpeg,go等环境

阿里云那个镜像地址获取

阿里云镜像加速器不是一个通用的 registry.***-hangzhou.aliyuncs.***,而是你账号专属的,比如这样:

https://abcd1234.mirror.aliyuncs.***

👉 登录阿里云控制台获取:
阿里云镜像加速器

然后替换 /etc/docker/daemon.json 里面的地址:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://<你的专属ID>.mirror.aliyuncs.***"
  ]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

mysql

数据持久化(推荐)

这样容器删除后,数据还在:

docker run -d \
  --name mysql8 \
  -p 3310:3306 \
  -e MYSQL_ROOT_PASSWORD=root \
  -v /mydata/mysql8:/var/lib/mysql \
  mysql:8.0

这里 /mydata/mysql8 是宿主机目录,用来保存 MySQL 数据文件。


要不要我顺便帮你写一个 docker-***pose.yml,这样以后你只要 docker-***pose up -d 就能快速启动?

nginx

👌 对,你理解的没错。
用 Docker 跑 Nginx 的时候,一般需要:

  1. 把宿主机的前端项目文件夹映射到容器的 /usr/share/nginx/html(这样才能访问你自己的前端项目);

  2. 把宿主机的 Nginx 配置文件挂载到容器的 /etc/nginx/conf.d(这样可以修改 Nginx 配置,不用进容器)。

我给你一个完整的安装步骤:


1. 先拉取 nginx 镜像

docker pull nginx:latest

2. 在 Linux 上创建目录

假设你前端项目代码放在 /mydata/frontend,Nginx 配置放在 /mydata/nginx/conf

mkdir -p /mydata/frontend
mkdir -p /mydata/nginx/conf

3. 准备一个默认配置文件

创建 /mydata/nginx/conf/default.conf

touch /mydata/nginx/conf/default.conf

只写server的内容就行

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

4. 启动 Nginx 容器

把端口、项目文件夹、配置文件都映射出来:

docker run -d \
  --name nginx \
  -p 8080:80 \
  -v /mydata/frontend:/usr/share/nginx/html \
  -v /mydata/nginx/conf:/etc/nginx/conf.d \
  nginx:latest

5. 验证是否成功

  • 浏览器访问:http://你的服务器IP:8080

  • 如果看到你放在 /mydata/frontend/index.html 的页面,就说明成功了。

  • 修改 /mydata/nginx/conf/default.conf 后,只需要重启容器:

docker restart nginx

修改配置

验证配置是否正确

docker exec -it nginx nginx -t
 

修改配置并重新加载

vi /mydata/nginx/conf/default.conf
docker exec -it nginx nginx -s reload

 

总结:

  • /mydata/frontend → 存放前端项目(宿主机和容器共享)。

  • /mydata/nginx/conf → 存放配置文件。

  • Nginx 在容器里会用你宿主机的配置和静态文件。


要不要我帮你直接写一个 docker-***pose.yml?这样你就只需要 docker-***pose up -d 就能跑起来,不用记长命令。

redis

👌 好的,很简单,我给你一个最小化的 Redis Docker 启动命令,不用密码,端口映射到 6389


命令启动方式

docker run -d \
  --name redis6389 \
  -p 6389:6379 \
  redis:latest \
  redis-server --appendonly yes --requirepass ""

说明

  • --name redis6389 :容器名字叫 redis6389

  • -p 6389:6379 :宿主机的 6389 → 容器里的 6379(Redis 默认端口)

  • redis:latest :拉取最新版 Redis

  • redis-server --appendonly yes :开启持久化(避免宕机数据丢失)

  • --requirepass "" :不设置密码(空字符串 = 无密码)


进入 Redis

docker exec -it redis6389 redis-cli -p 6379

或者直接从宿主机连接:

redis-cli -h 127.0.0.1 -p 6389

持久化(推荐)

如果你想让数据保存在宿主机,比如放在 /mydata/redis 目录:

docker run -d \
  --name redis6389 \
  -p 6389:6379 \
  -v /mydata/redis:/data \
  redis:latest \
  redis-server --appendonly yes --requirepass ""

要不要我给你顺手写个 docker-***pose.yml,这样以后你一条命令就能启动 Redis(端口 6389,无密码,带持久化)?

Java环境

Yum 安装(可能是 OpenJDK 21)

先检查仓库里是否有 JDK 21:

yum search java-21

如果能找到(例如 java-21-openjdk),直接安装:

sudo yum install -y java-21-openjdk java-21-openjdk-devel

验证:

java -version

嗯,我懂了 👍

你之前确实执行过安装 JDK 21 的命令,但现在运行 java -version 看到的还是 Java 11,说明系统上 可能已经安装了 Java 21,但默认版本还没切换过去

在 CentOS / RHEL 系统里,默认的 Java 版本由 alternatives 控制。

你可以用下面的命令查看和切换:

# 查看系统已安装的 Java 版本
alternatives --display java

# 或者交互式选择版本
alternatives --config java

执行 alternatives --config java 后,你会看到类似这样的列表:

There are 2 programs which provide 'java'.

  Selection    ***mand
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-11-openjdk-11.0.25/bin/java
   2           /usr/lib/jvm/java-21-openjdk-21.0.2/bin/java

Enter to keep the current selection[+], or type selection number:

👉 你只需要输入 2(对应 java-21)回车,就能切换到 Java 21。

然后再验证:

java -version

就应该显示 openjdk version "21.0.x"


要不要我帮你写一套命令,直接一步到位:

  1. 检查系统有没有装 java-21

  2. 如果没有就安装

  3. 自动切换到 java-21 并验证


python环境

明白了 😅,你当前的 Alibaba Cloud Linux 系统 不支持 DNF 模块管理,所以 dnf module list python 返回为空。这种情况下,系统仓库里没有 Python 3.10 包,只能用 源码编译安装

下面我给你一个 完整一键安装 Python 3.10 的方案(源码安装 + 配置环境变量 + pip):


一键安装 Python 3.10(源码)

# 1. 安装依赖
sudo yum groupinstall -y "Development Tools"
sudo yum install -y g*** g***-c++ make bzip2 bzip2-devel zlib-devel xz-devel libffi-devel wget

# 2. 下载 Python 3.10.15 源码
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz
sudo tar xzf Python-3.10.15.tgz
cd Python-3.10.15

# 3. 编译安装到 /usr/local/python3.10
sudo ./configure --enable-optimizations --prefix=/usr/local/python3.10
sudo make -j$(nproc)
sudo make altinstall  # 注意:使用 altinstall 避免覆盖系统 python

# 4. 配置环境变量
sudo tee /etc/profile.d/python3.10.sh <<'EOF'
export PATH=/usr/local/python3.10/bin:$PATH
EOF
source /etc/profile.d/python3.10.sh

# 5. 验证
python3.10 --version
pip3.10 --version

说明

  • make altinstall:避免覆盖系统默认 Python(防止破坏系统工具)

  • 安装路径 /usr/local/python3.10:独立版本,不影响系统自带 Python

  • pip 会随 Python 一起安装

  • 使用 source /etc/profile.d/python3.10.sh 刷新环境变量


如果你需要,我可以帮你写一个 脚本版直接一条命令执行完所有步骤,安装完成后可以直接使用 python3.10pip3.10

你希望我写吗?

python安装依赖-节约内存写法

python3.10 -m pip install --no-cache-dir -r requirements.txt

ffmpeg安装

明白了,你现在的系统是 阿里云定制的 Linux 8(alinux3),阿里云 EPEL 源里并没有 ffmpeg 包,所以 yum install ffmpeg 找不到。官方 EPEL 也冲突,直接安装失败。

有两种解决方案:


方案 1:使用 RPM 包直接安装 ffmpeg

  1. 下载适合 CentOS 8 / RHEL 8 的 ffmpeg 静态包:

cd /tmp
wget https://johnvansickle.***/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
tar -xvf ffmpeg-release-amd64-static.tar.xz
sudo cp ffmpeg-*/ffmpeg ffmpeg-*/ffprobe /usr/local/bin/
sudo chmod +x /usr/local/bin/ffmpeg /usr/local/bin/ffprobe
ffmpeg -version

这样可以快速安装,不用管 yum 源。


转载请说明出处内容投诉
CSS教程网 » 阿里云镜像地址获取,并安装 docker的mysql和nginx等服务,java,python,ffmpeg,go等环境

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买