开发软件环境搭建基于docker引擎单机篇1.0版本

linux服务与docker服务文章地址如下:

http 复制代码
https://juejin.cn/post/7332765584914120713

MinIO文件存储服务应用安装

这篇文章单独写过了,地址在这里:

http 复制代码
https://juejin.cn/post/7327832105328017458

使用Portainer安装Nginx服务器

研究官方nginx镜像文件说明,以及我们日常需要操作的nginx相关文件,例如:nginx的配置文件,静态资源部署文件夹,总结如下:

  • 暴露端口 80
  • 自定义的配置文件需要放在容器 /etc/nginx/conf.d/ 目录中,宿主机映射这个目录就可以了。
  • 静态资源文件容器存储位置为:/usr/share/nginx/html。

具体操作如下:

添加容器:

设置容器名称,使用的镜像,开发的端口:

绑定数据卷:

部署容器:

查看启动的容器列表:

nginx部署静态资源服务实验

在绑定的宿主机目录:/app/nginx/html 创建一个目录,并放入一个index.html文件作为静态资源。

创建静态资源:

shell 复制代码
cd /app/nginx/html/

mkdir test

cd test/

vim index.html

加入以下内容:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>首页</title>
</head>

<body>

  <h1>测试首页</h1>

</body>

</html>

在宿主机目录:/app/nginx/conf/conf.d/ 创建 test.conf 配置文件

shell 复制代码
cd /app/nginx/conf/conf.d/

vim test.conf

配置文件内容如下:

conf 复制代码
server {
    # 监听端口 80
    listen 80;
    # 服务器名称
    server_name localhost;
    # 字符集设置
    charset utf-8;
    # 指定资源目录 容器内的资源目录
    root /usr/share/nginx/html/test;
    # 首页设置
    index index.html index.htm;
}

重启nginx容器服务:

浏览器访问这个静态资源:

成功!

可以从web端查看容器启动日志,很方便。

可以进入到容器中执行命令:

总结:Portainer 相对于命令行去查看容器的信息,操作容器还是比较方便的,但是创建容器时,没有命令去创建干脆明显。

附上命令行创建nginx容器服务:

shell 复制代码
docker run -d --name=nginx \
  -p 80:80 \
  --privileged=true \
  -v /app/nginx/conf/conf.d:/etc/nginx/conf.d \
  -v /app/nginx/html:/usr/share/nginx/html \
  nginx:latest

以上创建的nginx容器,实现了nginx的配置文件和静态资源持久化到了宿主机上。

命令行安装mysql8数据库

在宿主机上创建如下目录,存储mysql容器中的数据。

shell 复制代码
cd /app/

mkdir -p /app/mysql/log
mkdir -p /app/mysql/data
mkdir -p /app/mysql/conf

启动mysql容器命令:

shell 复制代码
docker run -d -p 3306:3306 \
--privileged=true \
-v /app/mysql/log:/var/log/mysql \
-v /app/mysql/data:/var/lib/mysql \
-v /app/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=0312Yhk. \
--name mysql \
mysql:8.0.28

docker ps查看启动情况。

本地客户端连接mysql容器,查看是否成功。

但是,容器创建的mysql服务的字符集有些问题:

查看mysql服务器的字符集命令:

shell 复制代码
SHOW VARIABLES LIKE 'character%';

在宿主机目录:/app/mysql/conf 创建 mysql 配置文件:my.cnf

shell 复制代码
cd /app/mysql/conf

vim my.cnf

# 添加如下内容:

[client]
default_character_set=utf8mb4
[mysqld]
collation_server=utf8mb4_general_ci
character_set_server=utf8mb4

重启mysql容器服务,再查看mysql容器服务字符集:

已修正。

命令行安装redis7数据库

创建redis宿主机文件存储目录

shell 复制代码
cd /app/

# 配置存储位置
mkdir -p /app/redis/redis.conf
# 数据 aof rdm存储位置
mkdir -p /app/redis/data

准备一份redis配置文件,放在宿主机目录:/app/redis/redis.conf 中

修改redis.conf,我常用的配置选项如下:

shell 复制代码
# 开启远程访问
#bind 127.0.0.1 -::1

# 关闭保护模式
protected-mode no

# 注意 这里不能把容器里的后台运行设为yes 否则报错
daemonize no

# 开启aof
appendonly yes

# 设置密码
requirepass 0312Yhk.

# 禁用敏感命令
rename-command keys ""
rename-command flushdb ""
rename-command flushall ""

执行以下命令启动redis容器服务:

shell 复制代码
docker run -d --name redis \
-p 6379:6379 \
--privileged=true \
-v /app/redis/redis.conf:/etc/redis/redis.conf \
-v /app/redis/data:/data \
redis:7.2.4 \
redis-server /etc/redis/redis.conf/redis.conf

查看redis容器是否正常启动。

远程连接成功。

禁用命令生效。

持久化在宿主机成功。

命令行安装rabbitmq

shell 复制代码
docker run -d --name rabbitmq \
-p 5672:5672 -p 15672:15672 \
rabbitmq:3-management

以上笔记,记录了容器安装mysql8,redis7,rabbitmq。往后再遇到需要安装的开发软件的话,会单独写出一篇文章来记录,这篇文章就到这里吧。

相关推荐
qiuziqiqi3 分钟前
ocker-compose.yml 和Dockerfile 区别
运维·docker·容器
杰克逊的日记8 分钟前
如何在不影响业务的情况下对K8S集群升级
云原生·容器·kubernetes
“码”力全开36 分钟前
【架构深探】基于Docker与GB28181/RTSP的边缘计算AI视频管理平台:异构算力调度与源码交付实践
人工智能·docker·架构
qq7590353661 小时前
2026 docker run启动的容器通过命令导出为docker-composer.yml文件
docker·eureka·composer
极客先躯2 小时前
高级java每日一道面试题-2026年02月03日-实战篇[Docker]-如何备份和恢复 Docker Volume?
运维·docker·容器·自动化·备份·持久化·恢复
“码”力全开3 小时前
基于 Docker 与边缘计算的 AI 视频管理平台:打破 GB28181/RTSP 协议壁垒与源码交付架构解析
人工智能·docker·边缘计算
江湖有缘3 小时前
自建私有任务管理平台|Docker Compose部署Ticky完整教程
运维·docker·容器
ai产品老杨3 小时前
破局多路异构计算:基于 Docker 容器化与 GB28181/RTSP 统一接入的 AI 边缘计算视频管理平台架构解析
人工智能·docker·边缘计算
梦想的颜色3 小时前
Docker 知识全貌:一份体系化的知识结构报告
docker·云原生·容器·eureka
zhangfeng11333 小时前
国家超算中心K8s 容器服务,新版容器和老版本的一些坑
云原生·容器·kubernetes