Docker创建常用的容器

MySQL 容器

MySQL 是一个广泛使用的数据库管理系统。创建 MySQL 的 Docker 容器,你需要确保容器可以持久化数据,并且可以通过网络访问。

拉取 MySQL 镜像

docker pull mysql

启动 MySQL 容器

docker run --name some-mysql -v ./mysql-data:/var/lib/mysql \
           -e MYSQL_ROOT_PASSWORD=mypass \
           -p 3306:3306 \
           -d mysql --character-set-server=utf8 --collation-server=utf8_unicode_ci
  • --name some-mysql: 给容器命名。
  • -v ./mysql-data:/var/lib/mysql: 将 MySQL 数据目录挂载到宿主机的 ./mysql-data 目录,这样可以保证数据的持久性。
  • -e MYSQL_ROOT_PASSWORD=mypass: 设置 MySQL root 用户的密码。
  • -p 3306:3306: 映射容器的 3306 端口到宿主机的相同端口。
  • --character-set-server=utf8 --collation-server=utf8_unicode_ci: 设置字符集为 UTF-8。

RabbitMQ

拉取 RabbitMQ 镜像
注意获取镜像的时候要获取management版本的,不要获取last版本的,management版本的才带有管理界面

docker pull rabbitmq:3.8-management

启动 RabbitMQ 容器

docker run \
 -e RABBITMQ_DEFAULT_USER=admin\
 -e RABBITMQ_DEFAULT_PASS=123456\
 -v ./rabbitmq:/var/lib/rabbitmq \
 --name mq \
 --hostname mq \
 -p 15672:15672 \
 -p 5672:5672 \
 -d --restart=always \
 rabbitmq:3.8-management
  • -d:表示以后台(守护进程)模式运行容器。
  • --name mq:指定容器的名称为my-rabbitmq。
  • -p 5672:5672 -p 15672:15672:将主机的5672和15672端口映射到容器内对应的端口,其中5672是RabbitMQ的消息传递端口,15672是RabbitMQ的管理界面端口。
  • -v ./rabbitmq:/var/lib/rabbitmq:将主机上的/home/rabbitmq目录挂载到容器内的/var/lib/rabbitmq目录,用于持久化存储RabbitMQ的数据。
  • --hostname mq:设置容器的主机名为my-rabbitmq-host。
  • -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456:设置默认用户名和密码为admin/admin。
  • --restart=always:设置容器在启动时自动重启。

minio

创建目录
一个用来存放配置,一个用来存储上传文件的目录

启动前需要先创建Minio外部挂载的配置文件( /minio/config),和存储上传文件的目录( /minio/data)

mkdir -p /minio/config

mkdir -p /minio/data

创建Minio容器并运行

docker run \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-d --restart=always \
-e "MINIO_ROOT_USER=minio" \
-e "MINIO_ROOT_PASSWORD=minio123" \
-v /minio/data:/data \
-v /minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9001" --address ":9000"
  1. 端口映射 (-p):

    • -p 9000:9000: 将容器的 9000 端口映射到宿主机的 9000 端口。9000 端口是 MinIO 的默认对象存储服务端口。
    • -p 9001:9001: 将容器的 9001 端口映射到宿主机的 9001 端口。9001 端口是 MinIO 的管理控制台端口。
  2. 网络模式 (--net=host):

    • --net=host: 使用宿主机的网络命名空间。这意味着容器将共享宿主机的网络接口,容器内的进程可以直接使用宿主机的网络端口。注意,使用 --net=host 时,端口映射 (-p) 会被忽略。
  3. 容器名称 (--name):

    • --name minio: 给容器命名为 minio。这样在后续操作中可以通过这个名字来引用这个容器。
  4. 后台运行 (-d):

    • -d: 以守护进程模式(后台)运行容器。
  5. 重启策略 (--restart):

    • --restart=always: 设置容器的重启策略为 always,这意味着无论容器因什么原因停止,Docker 都会自动重启它。这在生产环境中非常有用,确保服务的高可用性。
  6. 环境变量 (-e):

    • -e "MINIO_ACCESS_KEY=minio": 设置 MinIO 的访问密钥(Access Key)为 minio
    • -e "MINIO_SECRET_KEY=minio123": 设置 MinIO 的秘密密钥(Secret Key)为 minio123
  7. 数据卷挂载 (-v):

    • -v /minio/data:/data: 将宿主机的 /minio/data 目录挂载到容器的 /data 目录。这用于持久化 MinIO 存储的数据。
    • -v /minio/config:/root/.minio: 将宿主机的 /minio/config 目录挂载到容器的 /root/.minio 目录。这用于持久化 MinIO 的配置文件。

访问

http://你的ip:9001

Redis

docker run -d \
  --name redis \
  -p 6379:6379 \
  -v redis_data:/data \
  redis:latest \
  redis-server \
  --appendonly no \
  --requirepass 123456

参数说明:

  • -d: 后台运行容器。

  • --name redis: 容器名称。

  • -p 6379:6379: 将宿主机的6379端口映射到容器。

  • -v redis_data:/data: 使用Docker卷redis_data持久化数据。

  • redis-server --appendonly yes: 启用AOF持久化。

    • --appendonly no  # 显式关闭AOF(默认已关闭,可选)
  • --requirepass 123456: 设置访问密码(替换123456为你的密码)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值