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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装 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
### OrbStack 安装配置及使用教程 for Mac OS 12 #### 准备工作 为了确保 OrbStack 能够顺利运行于 macOS 12 系统之上,建议先确认操作系统版本以及更新至最新状态。此外,由于 OrbStack 需要 Docker 的支持来管理容器化应用,因此也需要提前完成 Docker Desktop 或其他兼容版 Docker 工具链的部署。 #### 安装 OrbStack 对于 MacOS 用户来说,最简便的方法就是通过官方推荐的方式来进行安装: - 访问官网获取适用于 Apple Silicon (M1/M2) Intel 架构的 DMG 文件并按照提示操作即可完成软件包的安装过程[^2]。 一旦安装完毕后,可以通过终端验证是否正确安装OrbStack 版本号以确保一切正常运作。 ```bash orbstack --version ``` #### 初始化设置 首次启动时会引导用户经历一系列初始化向导流程,其中包括但不限于创建默认网络接口、分配资源限额等重要参数设定。根据实际需求调整各项选项直至满意为止。 #### 使用说明 当所有准备工作都已完成之后就可以正式开始利用 OrbStack 提供的功能特性了。比如可以轻松地定义多容器应用程序的服务编排文件(通常是 `docker-compose.yml`),接着只需要一条简单的命令就能让整个项目跑起来: ```yaml services: web: image: nginx ports: - "8080:80" ``` ```bash orbstack up ``` 上述例子展示了如何基于 Nginx 映射端口从而实现 Web 服务器功能;当然这仅仅是冰山一角而已——借助丰富的镜像库灵活的任务调度机制,几乎任何类型的开发测试场景都能得到满足。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值