通过OrbStack对docker进行安装和部署

文章详细介绍了如何使用OrbStack在macOS上安装和部署Docker,接着演示了Docker中MySQL、Redis和MongoDB的安装过程,包括拉取镜像、创建数据卷、配置文件修改和容器运行。此外,还涵盖了Kafka的安装与测试,以及Docker常用命令的使用。
本文章已经生成可运行项目,

安装 OrbStack

OrbStack is a fast, light, and simple way to run Docker containers and Linux machines on macOS. You can think of it as a supercharged WSL and Docker Desktop replacement, all in one easy-to-use app.

image.png
image.png

安装MySQL

拉取镜像

docker search mysql    //搜索镜像
docker pull mysql    //拉取镜像
docker images    //查看本地镜像

创建数据卷

将其配置和数据等等挂载到数据卷以持久化到宿主机,并使用 具名挂载(主机数据卷名称:容器文件路径)进行管理。

创建三个数据卷,分别用于挂载并持久化MySQL的 数据文件配置文件日志文件

docker volume create mysql-data
docker volume create mysql-config
docker volume create mysql-log

创建并运行容器

docker run -id --name=mysql -v mysql-config:/etc/mysql/conf.d \
-v mysql-log:/logs \
-v mysql-data:/var/lib/mysql \
-p 3307:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e LANG=C.UTF-8 mysql
  • -id 将MySQL容器挂在后台运行
  • --name=mysql 将容器起名为 mysql
  • -v mysql-config:/etc/mysql/conf.d 把MySQL容器中的配置文件目录挂载至上述创建的名为mysql-config的数据卷上面,其他两个 -v 挂载数据卷的参数同理
  • -p 3307:3306 将主机的 3307 端口映射到容器的 3306
  • -e MYSQL_ROOT_PASSWORD=12345678 设置 root 用户的密码为12345678
  • -e LANG=C.UTF-8 设置容器的语言环境变量 LANG 值为 C.UTF-8

通过容器访问MySQL

docker exec -it mysql bash
mysql -uroot -p

安装redis

拉取镜像

docker pull redis

创建数据卷

docker volume create redis-config
docker volume create redis-data

修改配置文件

cd ~/OrbStack/docker/volumes/redis-config
vim redis.conf

添加
# 启动redis持久化功能
appendonly yes
# 设置密码
requirepass 12345678
# 指定数据存储位置
dir /data

创建容器

docker run -id --name=redis \
-v redis-config:/usr/local/etc/redis \
-v redis-data:/data -p 6379:6379 \
-e LANG=C.UTF-8 redis \ 
su -l root -c "redis-server /usr/local/etc/redis/redis.conf"
  • --name redis 指定容器名字
  • -v 指定数据卷,可见将容器配置文件夹/usr/local/etc/redis挂载至了数据卷redis-config,将容器内/data挂载至数据卷redis-data,可见这里挂载数据卷的容器内路径和我们上述预先写的配置文件中对应的路径是要一致的
  • -p 6379:6379 端口映射
  • -e 用于指定容器内环境变量,设置容器的语言环境变量LANG值为C.UTF-8,这个最好是要设置,否则容器内默认是英文环境,使得Redis可能无法存放中文内容
  • su -l root -c "redis-server /usr/local/etc/redis/redis.conf" 在容器内以root身份运行redis-server并指定了配置文件位置

通过容器执行redis命令

运行redis docker start redis

查看redis运行状态 docker ps | grep redis

进入redis容器内部 docker exec -it redis bash

进入Redis控制台 redis-cli

通过测试连接

MongoDB

安装

docker pull mongo

docker run --name mongo -v mongo-data:/data/db -v mongo-config:/data/configdb --privileged -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123456 -d mongo --auth

  • –name 指定容器名称
  • -v 指定数据存储位置
  • --privileged root权限
  • -p 端口映射
  • -d 后台运行
  • –auth 需要认证,默认mongo是不需要认证的
  • -e MONGO_INITDB_ROOT_USERNAME=admin 指定用户名
  • -e MONGO_INITDB_ROOT_PASSWORD=123456 指定密码

添加用户

创建普通用户(拥有读写权限)

docker exec -it mongo /bin/bash

mongo --port 27017 -u admin -p 123456 --authenticationDatabase admin

> use test
switched to db test
# 普通用户账户: user, 密码: 123456, 有读写权限;
> db.createUser({user:"user",pwd:"123456",roles:[{role:"readWrite",db:"test"}]});
Successfully added user: {
    "user" : "zk",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "test"
        }
    ]
}

kafka

安装kafka

最新Kafka 使用内置的 ZooKeeper 客户端库来管理主题和分区,因此我们不用额外安ZooKeeper,可以直接安装 Kafka

拉取镜像 docker pull wurstmeister/kafka

创建网络 docker network create kafka-net

启动Kafka服务实例

docker run -d --name kafka \
    --network kafka-net \
     -p 9092:9092 \
    -e ALLOW_PLAINTEXT_LISTENER=yes \
    bitnami/kafka:latest

测试Kafka生产者和消费者

docker exec -it kafka /bin/b

cd opt/bitnami/kafka/bin/

开启两个终端

运行生产者发送消息 ./kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic

运行消费者接受消息 ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning

DockerUI

docker常用命令

镜像

docker search <IMAGE NAME>     // 搜索镜像
docker pull <IMAGE NAME>       // 拉取镜像
docker images             // 查看本地镜像
docker rmi <IMAGE ID>     // 删除镜像

容器

docker ps -a                   // 查看所有的容器
docker inspect <CONTAINER ID>  // 查看容器详情
docker start <CONTAINER ID>    // 启动容器
docker restart <CONTAINER ID>
dokcer kill <CONTAINER ID>
docker stop <CONTAINER ID>    // 停止运行中的容器
docker logs <CONTAINER ID>    // 查看容器日志
docker rm -f <CONTAINER ID>   // 删除容器

// 可以用指定的容器名称代替id
本文已生成可运行项目
<think>好的,我需要帮助用户解决在OrbStack安装配置Alist的问题。首先,我得确认用户对OrbStackAlist的基本了解。OrbStack是一个用于容器虚拟机管理的工具,可能类似Docker Desktop但更轻量。而Alist是一个支持多种存储服务的文件列表程序,通常通过Docker部署。 用户的需求很明确,他们想在OrbStack环境中安装Alist。根据之前的知识,OrbStack支持Docker,所以安装Alist应该可以通过Docker容器来实现。我需要参考用户提供的引用,特别是引用[5]提到通过OrbStack安装Docker,所以可能需要先确保DockerOrbStack中已正确安装并运行。 接下来,步骤可能包括:安装Docker(如果尚未安装)、拉取Alist的Docker镜像、创建配置文件目录、运行容器并映射端口卷。另外,可能需要配置持久化存储,确保数据在容器重启后不丢失。 我需要检查是否有现成的Docker镜像可用,比如xhofe/alist,这是常见的Alist镜像。然后,用户需要访问Alist的管理界面,初始密码可能需要通过日志获取,或者使用docker exec命令查看。 还要考虑OrbStack的网络配置,确保端口5244未被占用,或者指导用户如何修改端口映射。此外,更新维护方面,可能需要说明如何停止旧容器并拉取新镜像。 需要注意用户可能遇到的常见问题,比如权限问题,或者配置文件路径是否正确。同时,参考引用中的其他安装步骤,比如引用[2][3]提到的配置修改,可能需要提示用户如何调整YAML文件或环境变量。 最后,生成相关问题,帮助用户进一步了解OrbStack的其他应用,比如安装其他服务如Elastic Stack或Kubernetes,或者优化Docker性能等。</think>以下是在OrbStack环境中安装配置Alist的详细步骤: ### 一、准备工作 1. **启动OrbStack** 确保已正确安装OrbStack并启动服务,其优势在于轻量级容器管理[^1]。 2. **验证Docker环境** 在终端执行以下命令确认Docker已就绪: ```bash docker --version ``` 若未安装,可通过OrbStack自动集成功能初始化Docker环境[^5]。 --- ### 二、安装Alist 1. **拉取Alist镜像** 使用官方Docker镜像: ```bash docker pull xhofe/alist:latest ``` 2. **创建数据目录** 为持久化存储配置,新建目录并授权: ```bash mkdir -p ~/alist/data && chmod 777 ~/alist/data ``` 3. **运行容器** 执行以下命令启动Alist服务: ```bash docker run -d \ --name=alist \ -p 5244:5244 \ -v ~/alist/data:/opt/alist/data \ xhofe/alist:latest ``` * `-p 5244:5244`:将容器5244端口映射到宿主机 * `-v ~/alist/data:/opt/alist/data`:挂载配置文件目录[^3] --- ### 三、配置Alist 1. **获取管理员密码** 查看容器日志以获取初始密码: ```bash docker logs alist | grep password ``` 或进入容器直接查看: ```bash docker exec -it alist ./alist admin ``` 2. **访问管理界面** 浏览器打开`http://localhost:5244`,使用用户名`admin`获取的密码登录。 --- ### 四、高级配置(可选) 1. **自定义端口** 若需修改访问端口(如改为8080): ```bash docker run -d -p 8080:5244 ...(其他参数不变) ``` 2. **更新Alist** 停止旧容器并拉取新镜像: ```bash docker stop alist && docker rm alist docker pull xhofe/alist:latest # 重新运行容器 ``` --- ### 常见问题解决 - **权限问题**:确保挂载目录权限开放,可执行`chmod -R 777 ~/alist/data` - **端口冲突**:通过`lsof -i:5244`检查端口占用情况 - **网络问题**:OrbStack需允许Docker网络通信[^1] ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值