Docker 常用容器啟動命令

Docker DeskTop 設(shè)置容器的數(shù)據(jù)卷

  1. 需要在主機(jī)上設(shè)置數(shù)據(jù)卷的路徑(一級目錄)

    • “設(shè)置“中

    • ”Resource“ 中

    • “File Sharing” 中設(shè)置路徑(表示主機(jī)的數(shù)據(jù)卷在 /data 目錄中)

      /data
      
  2. 創(chuàng)建網(wǎng)絡(luò)

    • 未指定驅(qū)動,默認(rèn)使用 bridge 網(wǎng)絡(luò)

    • 命令

      # 創(chuàng)建網(wǎng)絡(luò)
      docker network create default_network
      # 查看所有網(wǎng)絡(luò)
      docker network ls
      # 刪除網(wǎng)絡(luò)
      docker network rm default_network
      

Redis 容器的啟命令

  1. 掛載說明

    • 將宿主機(jī)的掛載目錄權(quán)限改為777
    • 宿主機(jī)主備配置文件 redis.conf,按照環(huán)境需要修改配置文件
  2. 命令包含容器啟動、數(shù)據(jù)卷掛載等

    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. 掛載說明

    • 將宿主機(jī)的掛載目錄權(quán)限改為777。

    • 注意如果需要掛在容器/etc/my.cnf 文件時,宿主機(jī)文件權(quán)限設(shè)置為 644才可以正常啟動鏡像

    • my.cnf配置文件不建議進(jìn)行掛在,因為該配置文件是mysql服務(wù)的配置文件入口!includedir /etc/mysql/conf.d/,所有自定義配置信息可以在/etc/mysql/conf.d/目錄下進(jìn)行配置

      • 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時,需要進(jìn)行修改secure-file-priv=/var/lib/mysql-files,否則掛在該配置文件會存在問題

    • 自定義配置文件:例如配置mysql日志相關(guān)信息,在掛載容器目錄/etc/mysql/conf.d的文件夾中創(chuàng)建log.cnf配置文件

      • log.cnf文件配置新如下

        [mysqld]
        # 錯誤日志配置
        log_error = /var/log/mysql/error.log
        
        # 通用查詢?nèi)罩九渲?general_log = 1 # 開啟
        general_log_file = /var/log/mysql/general.log
        
        # 慢查詢?nèi)罩九渲?slow_query_log = 1 # 開啟
        slow_query_log_file = /var/log/mysql/slow.log
        long_query_time = 2 # 慢查詢閾值(2s)
        
      • 注意事項

        1. 文件擴(kuò)展名:通常只識別 .cnf 文件
        2. 加載順序:按文件名字母順序加載,后面文件覆蓋前面
        3. 錯誤處理:如果目錄中的某個配置文件有語法錯誤,MySQL 可能無法啟動
  1. 命令包含容器啟動、數(shù)據(jù)卷掛載等

    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. 命令包含啟動、數(shù)據(jù)卷掛載等

    • 8848Nacos HTTP API 端口,用于Nacos AdminAPI及HTTP OpenAPI的訪問。
    • 9848客戶端gRPC請求服務(wù)端端口,用于客戶端向服務(wù)端發(fā)起連接和請求
    • 9849 服務(wù)端gRPC請求服務(wù)端端口,用于服務(wù)間同步等
    • 7848Jraft請求服務(wù)端端口,用于處理服務(wù)端間的Raft相關(guān)請求
    • 8080Nacos控制臺端口,訪問Nacos控制臺及Nacos控制臺的API。瀏覽器訪問 http://<服務(wù)器IP>:88080 來管理服務(wù)發(fā)現(xiàn)和配置
    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. 注意

    • 在使用官方鏡像時,服務(wù)端如何開啟鑒權(quán)需要設(shè)置如下環(huán)境變量(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. 命令包含啟動、數(shù)據(jù)卷掛載等

    • 8858 是 Sentinel Dashboard 控制臺的Web訪問端口,也是微服務(wù)應(yīng)用發(fā)送心跳和監(jiān)控數(shù)據(jù)的端口。瀏覽器中訪問 http://宿主機(jī)IP:8858 來打開管理界面
    • 8719(業(yè)務(wù)系統(tǒng)監(jiān)聽的端口),是客戶端接受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. 命令包含啟動、數(shù)據(jù)卷掛載等

    • 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. 掛載說明

    • 將宿主機(jī)的掛載目錄權(quán)限改為777

    • 準(zhǔn)備配置 namesrv.conf (自定義)

      # namesrv端口號
      listenPort=8876
      
  2. 命令包含啟動、數(shù)據(jù)卷掛載等

    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. 前期準(zhǔn)備

    • 將宿主機(jī)的掛載目錄權(quán)限改為777

    • 準(zhǔn)備 broker.conf

      # 指定整個broker集群的名稱,或者是RocketMQ集群名稱
      brokerClusterName=DefaultCluster
      # 指定master-slave集群名稱,一個RocketMQ集群可以包含多個master-slave集群
      brokerName=broker_a
      # master的brokerId=0
      brokerId=0
      # 指定刪除消息存儲過期文件的時間為凌晨4點
      deleteWhen=04
      # 指定未發(fā)生更新的消息存儲文件保留時長為48小時,48小時后過期,將會被刪除
      fileReservedTime=
      # 指定當(dāng)前broker為異步復(fù)制master
      brokerRole=ASYNC_MASTER
      # 指定刷盤策略為異步刷盤
      flushDiskType=ASYNC_FLUSH
      # broker_a-master端口號
      listenPort=10991
      # 指定nameServer的地址
      #namesrvAddr=ip:port;ip:port
      namesrvAddr=mqNamesrv:9876
      
      # 指定消息存儲相關(guān)的路徑。默認(rèn)路徑為~/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 
    

啟動控制臺服務(wù)

  1. 前期準(zhǔn)備

    • 準(zhǔn)備時區(qū)設(shè)置文件 /etc/localtime 和 /etc/timezone ,對時區(qū)文件復(fù)制以供數(shù)據(jù)卷掛載使用,以便解決解決界面錯誤提示 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. 參考文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容