亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • 一、docker一些基礎(chǔ)命令
  • 二、docker部署(使用docker-compose)
    • 2.1 安裝docker(服務(wù)器:CentOS 7或更高版本)
    • 2.2 安裝docker-compose
    • 2.3 構(gòu)建鏡像供docker-compose使用
    • 2.4執(zhí)行一次docker-compose up
    •  2.5docker容器內(nèi)通信
    • 2.6 錯誤解決
      • 2.6.1 網(wǎng)卡網(wǎng)段重復(fù)問題
      • 2.6.2 docker啟動成功,但是無法遠程連接
      • 2.6.3 Failed opening the RDB file dump.rdb (in server root dir /redis/data)
    • 2.7大功告成
    • 總結(jié)

      此文章需要有一定的docker知識基礎(chǔ)上,進行docker線上部署。

      一、docker一些基礎(chǔ)命令

      docker build -t ubuntu:15.10 .    -t表示 tag  .表示當(dāng)前文件dockerfile
      docker build -t ruoyi/ruoyi-server:4.1.0 . 
      docker images 查看鏡像 
      docker ps 或者 docker container ls 顯示正在運行的容器
      docker run ubuntu /bin/echo "Hello world"    注意: /bin/echo "Hello world"   表示執(zhí)行的命令
      docker run -i -t ubuntu:15.10 /bin/bash   -t: 在新容器內(nèi)指定一個偽終端或終端。 -i: 允許你對容器內(nèi)的標(biāo)準(zhǔn)輸入 (STDIN) 進行交互。
      docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"    啟動容器(后臺模式)
      docker logs 2b1b7a428627   在宿主主機內(nèi)使用 docker logs 命令,查看容器內(nèi)的標(biāo)準(zhǔn)輸出:
      docker stop 2b1b7a428627
      docker start 2b1b7a428627   使用 docker start 啟動一個已停止的容器
      docker ps -a   查看所有的容器命令
      docker run -itd --name ubuntu-test ubuntu /bin/bash    docker的服務(wù)是在后臺運行的,我們可以過 -d 指定容器的運行模式
      docker attach    想要進入容器,可以通過以下指令進入,注意: 如果從這個容器退出,會導(dǎo)致容器的停止
      docker exec -it 243c32535da7 /bin/bash   如果從這個容器退出,容器不會停止
      docker rm -f 1e560fca3906  刪除容器
      docker pull training/webapp  # 載入鏡像
      docker run -d -P training/webapp python app.py   -d:讓容器在后臺運行。  -P:將容器內(nèi)部使用的網(wǎng)絡(luò)端口隨機映射到我們使用的主機上。
      docker inspect test1    可以查看掛載點
      docker stop $(docker ps -a -q)  1.停止所有的container,這樣才能夠刪除其中的images:
      docker rm $(docker ps -a -q)  如果想要刪除所有container的話再加一個指令:
      docker rmi $(docker images -q)  刪除所有鏡像

      二、docker部署(使用docker-compose)

      docker-compose.yml 文件內(nèi)容

      version: '3'
       
      services:
        mysql:
          image: mysql:8.0.27
          container_name: mysql
          environment:
            # 時區(qū)上海
            TZ: Asia/Shanghai
            # root 密碼
            MYSQL_ROOT_PASSWORD: root
            # 初始化數(shù)據(jù)庫(后續(xù)的初始化sql會在這個庫執(zhí)行)
            MYSQL_DATABASE: ry-vue
          ports:
            - "3306:3306"
          volumes:
            # 數(shù)據(jù)掛載
            - /docker/mysql/data/:/var/lib/mysql/
            # 配置掛載
            - /docker/mysql/conf/:/etc/mysql/conf.d/
          command:
            # 將mysql8.0默認(rèn)密碼策略 修改為 原先 策略 (mysql8.0對其默認(rèn)策略做了更改 會導(dǎo)致密碼無法匹配)
            --default-authentication-plugin=mysql_native_password
            --character-set-server=utf8mb4
            --collation-server=utf8mb4_general_ci
            --explicit_defaults_for_timestamp=true
            --lower_case_table_names=1
          privileged: true
          restart: always
          networks:
            ruoyi_net:
              ipv4_address: 172.30.0.36
       
        nginx-web:
          image: nginx:1.21.3
          container_name: nginx-web
          environment:
            # 時區(qū)上海
            TZ: Asia/Shanghai
          ports:
            - "80:80"
            - "443:443"
          volumes:
            # 證書映射
            - /docker/nginx/cert:/etc/nginx/cert
            # 配置文件映射
            - /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
            # 頁面目錄
            - /docker/nginx/html:/usr/share/nginx/html
            # 日志目錄
            - /docker/nginx/log:/var/log/nginx
          privileged: true
          restart: always
          networks:
            - ruoyi_net
       
        redis:
          image: redis:6.2.6
          container_name: redis
          ports:
            - "6379:6379"
          environment:
            # 時區(qū)上海
            TZ: Asia/Shanghai
          volumes:
            # 配置文件
            - /docker/redis/conf:/redis/config:rw
            # 數(shù)據(jù)文件
            - /docker/redis/data/:/redis/data/:rw
          command: "redis-server /redis/config/redis.conf"
          privileged: true
          restart: always
          networks:
            ruoyi_net:
              ipv4_address: 172.30.0.48
       
        minio:
          image: minio/minio:RELEASE.2021-10-27T16-29-42Z
          container_name: minio
          ports:
            # api 端口
            - "9000:9000"
            # 控制臺端口
            - "9001:9001"
          environment:
            # 時區(qū)上海
            TZ: Asia/Shanghai
            # 管理后臺用戶名
            MINIO_ACCESS_KEY: ruoyi
            # 管理后臺密碼,最小8個字符
            MINIO_SECRET_KEY: ruoyi123
            # https需要指定域名
            MINIO_SERVER_URL: ""
            # 開啟壓縮 on 開啟 off 關(guān)閉
            MINIO_COMPRESS: "off"
            # 擴展名 .pdf,.doc 為空 所有類型均壓縮
            MINIO_COMPRESS_EXTENSIONS: ""
            # mime 類型 application/pdf 為空 所有類型均壓縮
            MINIO_COMPRESS_MIME_TYPES: ""
          volumes:
            # 映射當(dāng)前目錄下的data目錄至容器內(nèi)/data目錄
            - /docker/minio/data:/data
            # 映射配置目錄
            - /docker/minio/config:/root/.minio/
          command: server --address ':9000' --console-address ':9001' /data  # 指定容器中的目錄 /data
          privileged: true
          restart: always
          networks:
            ruoyi_net:
              ipv4_address: 172.30.0.54
       
        ruoyi-server1:
          image: ruoyi/ruoyi-server:4.1.0
          container_name: ruoyi-server1
          environment:
            # 時區(qū)上海
            TZ: Asia/Shanghai
          volumes:
            # 配置文件
            - /docker/server1/logs/:/ruoyi/server/logs/
          privileged: true
          restart: always
          networks:
            ruoyi_net:
              ipv4_address: 172.30.0.60
       
        ruoyi-server2:
          image: "ruoyi/ruoyi-server:4.1.0"
          container_name: ruoyi-server2
          environment:
            # 時區(qū)上海
            TZ: Asia/Shanghai
          volumes:
            # 配置文件
            - /docker/server2/logs/:/ruoyi/server/logs/
          privileged: true
          restart: always
          networks:
            ruoyi_net:
              ipv4_address: 172.30.0.61
       
        ruoyi-monitor-admin:
          image: ruoyi/ruoyi-monitor-admin:4.1.0
          container_name: ruoyi-monitor-admin
          environment:
            # 時區(qū)上海
            TZ: Asia/Shanghai
          volumes:
            # 配置文件
            - /docker/monitor/logs/:/ruoyi/monitor/logs
          privileged: true
          restart: always
          networks:
            ruoyi_net:
              ipv4_address: 172.30.0.90
       
        ruoyi-xxl-job-admin:
          image: ruoyi/ruoyi-xxl-job-admin:4.1.0
          container_name: ruoyi-xxl-job-admin
          environment:
            # 時區(qū)上海
            TZ: Asia/Shanghai
          volumes:
            # 配置文件
            - /docker/xxljob/logs/:/ruoyi/xxljob/logs
          privileged: true
          restart: always
          networks:
            ruoyi_net:
              ipv4_address: 172.30.0.92
       
      networks:
        ruoyi_net:
          driver: bridge
          ipam:
            config:
              - subnet: 172.30.0.0/16

      2.1 安裝docker(服務(wù)器:CentOS 7或更高版本)

      curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

       安裝成功后,運行 docker ps 出現(xiàn)如下報錯

      手把手教你docker部署(使用docker-compose)教程

      Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running

       表示未啟動docker,運行下列語句即可

      service docker start

      2.2 安裝docker-compose

      curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

      安裝完成后,運行

      docker-compose -v 

      手把手教你docker部署(使用docker-compose)教程

      賦予權(quán)限即可

      chmod +x /usr/local/bin/docker-compose

      2.3 構(gòu)建鏡像供docker-compose使用

      手把手教你docker部署(使用docker-compose)教程

      在服務(wù)器上單獨新建文件夾名為ruoyi-admin

      手把手教你docker部署(使用docker-compose)教程

      dockerfile文件如下

      # 基礎(chǔ)鏡像
      FROM  java:8
      # author
      MAINTAINER kaixin
       
      EXPOSE 8080
       
      # 掛載目錄
      VOLUME /home/ruoyi
      # 創(chuàng)建目錄
      RUN mkdir -p /home/ruoyi
      # 指定路徑
      WORKDIR /home/ruoyi
      # 復(fù)制jar文件到路徑
      COPY ruoyi-admin.jar /home/ruoyi/ruoyi-admin.jar
      # 啟動認(rèn)證服務(wù)
      ENTRYPOINT ["java","-jar","ruoyi-admin.jar"]

       執(zhí)行如下命令

      cd /root/dockerbuild/ruoyi-admin/
      docker build -t ruoyi/ruoyi-server:4.1.0 .

      這就構(gòu)建出本地的鏡像了。

      手把手教你docker部署(使用docker-compose)教程

      依次再構(gòu)建出ruoyi/ruoyi-xxl-job-admin和ruoyi/ruoyi-monitor-admin

      2.4執(zhí)行一次docker-compose up

      cd到docker-compose.yml工作目錄下,執(zhí)行一次docker-compose up,此時必定會報錯。報錯如下

      手把手教你docker部署(使用docker-compose)教程

      意思是不存在,nginx的配置文件。

      為什么要執(zhí)行一次呢,因為這個時候,docker-compose.yml下掛在的文件,會自動幫你生成,省的你手動去創(chuàng)建了。

      根據(jù)提示,將提前準(zhǔn)備好的nginx.conf還有redis.conf 放到宿主機對應(yīng)的掛載文件夾底下即可。

      這里提示下:如果開啟了redis的aof模式,需要在redis的掛在文件下,手動創(chuàng)建appendonly.aof和dump.rdb

      并且需要賦予權(quán)限  

      chmod 777 /docker/redis/data/appendonly.aof
      chmod 777 /docker/redis/data/dump.rdb

      否則會報錯:

      手把手教你docker部署(使用docker-compose)教程

       2.5docker容器內(nèi)通信

      修改項目中application-dev.yml的配置,將訪問的mysql、redis修改成,docker-compose.yml中配置的ip地址,然后重新打包,重新使用docker build構(gòu)建鏡像。

      注意:由于上面執(zhí)行過一次的docker-compose up 這個時候?qū)?yīng)的鏡像狀態(tài)處于stop,并未消失,如果重新構(gòu)建鏡像,再執(zhí)行docker-compose up,仍然使用的是上次構(gòu)建成功的鏡像,所以需要刪除此次鏡像的進程。

      #關(guān)閉所有模塊
      docker-compose stop
      #刪除所有模塊
      docker-compose rm
      #刪除Tag為空的鏡像
      docker images|grep none|awk '{print $3}'|xargs docker rmi -f

      2.6 錯誤解決

      2.6.1 網(wǎng)卡網(wǎng)段重復(fù)問題

      ERROR: Pool overlaps with other one on this address space

      networks參數(shù)下手動指定了subnet地址,此地址發(fā)生了沖突

      docker network ls # 查看docker網(wǎng)卡
      docker network inspect <網(wǎng)卡id> # 查看具體信息,找到與subnet沖突的是哪個
      docker network rm <網(wǎng)卡id> # 刪除沖突的網(wǎng)卡

      再執(zhí)行docker-compose up

      2.6.2 docker啟動成功,但是無法遠程連接

      需要開啟ipv4轉(zhuǎn)發(fā)功能

      vi /etc/sysctl.conf
      net.ipv4.ip_forward=1  #添加這段代碼
      systemctl restart network && systemctl restart docker  #重啟network服務(wù)
      sysctl net.ipv4.ip_forward   #查看是否修改成功 (備注:返回1,就是成功)

      2.6.3 Failed opening the RDB file dump.rdb (in server root dir /redis/data)

      給文件夾賦予權(quán)限即可。

      chmod 777 /docker/redis/data/

      手把手教你docker部署(使用docker-compose)教程

      手把手教你docker部署(使用docker-compose)教程

      2.7大功告成

      總結(jié)

      分享到:
      標(biāo)簽:Docker 手把手教你 教程 服務(wù)器 部署
      用戶無頭像

      網(wǎng)友整理

      注冊時間:

      網(wǎng)站:5 個   小程序:0 個  文章:12 篇

      • 51998

        網(wǎng)站

      • 12

        小程序

      • 1030137

        文章

      • 747

        會員

      趕快注冊賬號,推廣您的網(wǎng)站吧!
      最新入駐小程序

      數(shù)獨大挑戰(zhàn)2018-06-03

      數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

      答題星2018-06-03

      您可以通過答題星輕松地創(chuàng)建試卷

      全階人生考試2018-06-03

      各種考試題,題庫,初中,高中,大學(xué)四六

      運動步數(shù)有氧達人2018-06-03

      記錄運動步數(shù),積累氧氣值。還可偷

      每日養(yǎng)生app2018-06-03

      每日養(yǎng)生,天天健康

      體育訓(xùn)練成績評定2018-06-03

      通用課目體育訓(xùn)練成績評定