Docker 常用容器启动命令

Docker DeskTop 设置容器的数据卷

  1. 需要在主机上设置数据卷的路径(一级目录)

    • “设置“中

    • ”Resource“ 中

    • “File Sharing” 中设置路径(表示主机的数据卷在 /data 目录中)

      /data
      
  2. 创建网络

    • 未指定驱动,默认使用 bridge 网络

    • 命令

      # 创建网络
      docker network create default_network
      # 查看所有网络
      docker network ls
      # 删除网络
      docker network rm default_network
      

Redis 容器的启命令

  1. 挂载说明

    • 将宿主机的挂载目录权限改为777
    • 宿主机主备配置文件 redis.conf,按照环境需要修改配置文件
  2. 命令包含容器启动、数据卷挂载等

    docker run -d \
    --name=redis \
    -p 7379:6379 \
    --network=my_bridge \
    --privileged=true \
    -v /root/docker/redis/conf:/etc/redis \
    -v /root/docker/redis/data:/data \
    redis \
    redis-server /etc/redis/redis.conf
    

Mysql 8容器的启动命令

  1. 挂载说明

    • 将宿主机的挂载目录权限改为777

    • 注意如果需要挂在容器/etc/my.cnf 文件时,宿主机文件权限设置为 644才可以正常启动镜像

    • my.cnf配置文件不建议进行挂在,因为该配置文件是mysql服务的配置文件入口!includedir /etc/mysql/conf.d/,所有自定义配置信息可以在/etc/mysql/conf.d/目录下进行配置

      • my.cnf配置信息如下

        [mysqld]
        host-cache-size=0
        skip-name-resolve
        datadir=/var/lib/mysql
        socket=/var/run/mysqld/mysqld.sock
        secure-file-priv=/var/lib/mysql-files
        user=mysql
        
        pid-file=/var/run/mysqld/mysqld.pid
        [client]
        socket=/var/run/mysqld/mysqld.sock
        
        !includedir /etc/mysql/conf.d/
        
      • 如果配置文件中属性值secure-file-priv=NULL时,需要进行修改secure-file-priv=/var/lib/mysql-files,否则挂在该配置文件会存在问题

    • 自定义配置文件:例如配置mysql日志相关信息,在挂载容器目录/etc/mysql/conf.d的文件夹中创建log.cnf配置文件

      • log.cnf文件配置新如下

        [mysqld]
        # 错误日志配置
        log_error = /var/log/mysql/error.log
        
        # 通用查询日志配置
        general_log = 1 # 开启
        general_log_file = /var/log/mysql/general.log
        
        # 慢查询日志配置
        slow_query_log = 1 # 开启
        slow_query_log_file = /var/log/mysql/slow.log
        long_query_time = 2 # 慢查询阈值(2s)
        
      • 注意事项

        1. 文件扩展名:通常只识别 .cnf 文件
        2. 加载顺序:按文件名字母顺序加载,后面文件覆盖前面
        3. 错误处理:如果目录中的某个配置文件有语法错误,MySQL 可能无法启动
  1. 命令包含容器启动、数据卷挂载等

    docker run -d \
    --name=mysql_8 \
    -p 4306:3306 \
    --network=my_bridge \
    --privileged=true \
    -v /root/docker/mysql/log:/var/log/mysql \
    -v /root/docker/mysql/data:/var/lib/mysql \
    -v /root/docker/mysql/conf:/etc/mysql/conf.d \
    -e MYSQL_ROOT_PASSWORD=mysql3306 \
    mysql
    

nacos3.v容器启动命令

  1. 命令包含启动、数据卷挂载等

    • 8848Nacos HTTP API 端口,用于Nacos AdminAPI及HTTP OpenAPI的访问。
    • 9848客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
    • 9849 服务端gRPC请求服务端端口,用于服务间同步等
    • 7848Jraft请求服务端端口,用于处理服务端间的Raft相关请求
    • 8080Nacos控制台端口,访问Nacos控制台及Nacos控制台的API。浏览器访问 http://<服务器IP>:88080 来管理服务发现和配置
    docker run -d \
    --name nacos \
    --network=my_bridge \
    --privileged=true \
    -p 8848:8848 \
    -p 9848:9848 \
    -p 9849:9849 \
    -p 7848:7848 \
    -p 8080:8080 \
    -e NACOS_AUTH_ENABLE=true \
    -e NACOS_AUTH_TOKEN=Y9E4vZBaU/QU68XQvVLV6igl9bdWP8zMtXw43xfXMZE=  \
    -e NACOS_AUTH_IDENTITY_KEY=identity_id \
    -e NACOS_AUTH_IDENTITY_VALUE=identity_value \
    -e MODE=standalone \
    -v /root/docker/nacos/logs:/home/nacos/logs \
    -v /root/docker/nacos/conf:/home/nacos/conf \
    -v /root/docker/nacos/data:/home/nacos/data \
    nacos/nacos-server
    
  2. 注意

    • 在使用官方镜像时,服务端如何开启鉴权需要设置如下环境变量(application.properties配置不生效)

      -e NACOS_AUTH_ENABLE=true \
      -e NACOS_AUTH_TOKEN=Y9E4vZBaU/QU68XQvVLV6igl9bdWP8zMtXw43xfXMZE=  \
      -e NACOS_AUTH_IDENTITY_KEY=identity_id \
      -e NACOS_AUTH_IDENTITY_VALUE=identity_value \
      

sentinel容器启动命令

  1. 命令包含启动、数据卷挂载等

    • 8858 是 Sentinel Dashboard 控制台的Web访问端口,也是微服务应用发送心跳和监控数据的端口。浏览器中访问 http://宿主机IP:8858 来打开管理界面
    • 8719(业务系统监听的端口),是客户端接受Sentinel命令的端口
    docker run -d \
    --name sentinel \
    --network my_bridge \
    --privileged=true \
    -p 8858:8858 \
    -e auth_username=sentinel \
    -e auth_password=sentinel8858 \
    -v /root/docker/sentinel/logs:/root/logs/csp \
    bladex/sentinel-dashboard
    

minio容器启动命令

  1. 命令包含启动、数据卷挂载等

    • API端口9000,用于客户端连接;控制台端口9001,用于浏览器管理
    docker run -d \
    --name minio \
    --network my_bridge \
    --privileged=true \
    -p 9001:9001 \
    -p 9000:9000 \
    -e MINIO_ROOT_USER=minio \
    -e MINIO_ROOT_PASSWORD=minio9001 \
    -v /root/docker/minio/data:/data \
    -v /root/docker/minio/config:/root/.minio \
    minio/minio \
    server /data \
    --console-address ":9001" \
    --address ":9000"
    

RocketMQ 容器启动命令

nameserver 容器启动命令

  1. 挂载说明

    • 将宿主机的挂载目录权限改为777

    • 准备配置 namesrv.conf (自定义)

      # namesrv端口号
      listenPort=8876
      
  2. 命令包含启动、数据卷挂载等

    docker run \
    --network default_network \
    --network-alias mqNamesrv \
    -p 9876:9876 \
    --privileged=true \
    -v /data/appData/dockerData/rocketmq/mqnamesrv/conf/namesrv.conf:/home/rocketmq/rocketmq-4.5.2/conf/namesrv.conf \
    -v /data/appData/dockerData/rocketmq/mqnamesrv/logs:/home/rocketmq/logs \
    -e "JAVA_OPT_EXT=-Xms128M -Xmx128M -Xmn128m" \
    --name=mqNamesrv \
    -d foxiswho/rocketmq:server
    

broker 容器启动命令

  1. 前期准备

    • 将宿主机的挂载目录权限改为777

    • 准备 broker.conf

      # 指定整个broker集群的名称,或者是RocketMQ集群名称
      brokerClusterName=DefaultCluster
      # 指定master-slave集群名称,一个RocketMQ集群可以包含多个master-slave集群
      brokerName=broker_a
      # master的brokerId=0
      brokerId=0
      # 指定删除消息存储过期文件的时间为凌晨4点
      deleteWhen=04
      # 指定未发生更新的消息存储文件保留时长为48小时,48小时后过期,将会被删除
      fileReservedTime=
      # 指定当前broker为异步复制master
      brokerRole=ASYNC_MASTER
      # 指定刷盘策略为异步刷盘
      flushDiskType=ASYNC_FLUSH
      # broker_a-master端口号
      listenPort=10991
      # 指定nameServer的地址
      #namesrvAddr=ip:port;ip:port
      namesrvAddr=mqNamesrv:9876
      
      # 指定消息存储相关的路径。默认路径为~/store目录
      storePathRootDir=/home/rocketmq/store
      storePathCommitLog=/home/rocketmq/store/commitLog
      storePathConsumerQueue=/home/rocketmq/store/consumerqueue
      storePathIndex=/home/rocketmq/store/index
      storeCheckpoint=/home/rocketmq/store/checkpoint
      abortFile=/home/rocketmq/store/abort
      
  2. 命令

    docker run \
    --network default_network \
    --network-alias mqBroker \
    -p 10911:10911 \
    --privileged=true \
    --name=mqBorker \
    -v /data/appData/dockerData/rocketmq/mqbroker/conf/broker.conf:/etc/rocketmq/broker.conf \
    -v /data/appData/dockerData/rocketmq/mqbroker/store_a:/home/rocketmq/store/ \
    -e "JAVA_OPTS=-Duser.home=/opt" \
    -e "JAVA_OPT_EXT=-Xms128M -Xmx128M -Xmn128m" \
    -d foxiswho/rocketmq:broker 
    

启动控制台服务

  1. 前期准备

    • 准备时区设置文件 /etc/localtime 和 /etc/timezone ,对时区文件复制以供数据卷挂载使用,以便解决解决界面错误提示 This date have not data 问题。
  2. 命令

    docker run \
    --network default_network \
    --network-alias mqConsole \
    --privileged=true \
    --name=mqConsole \
    -p 9000:8080 \
    -e "JAVA_OPTS=-Drocketmq.namesrv.addr=mqNamesrv:9876 \
    -Dcom.rocketmq.sendMessageWithVIPChannel=false \
    -Duser.timezone='Asia/Shanghai'" \
    -v /data/appData/dockerData/rocketmq/mqconsole/timezone:/etc/timezone \
    -v /data/appData/dockerData/rocketmq/mqconsole/localtime:/etc/localtime \
    -d styletang/rocketmq-console-ng
    
  3. 参考文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容