欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2023年01月18日 15:56:13   作者:you來有去  
使用 Docker Compose 可以輕松、高效的管理容器,下面這篇文章主要給大家介紹了關(guān)于手把手教你docker部署(使用docker-compose)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

此文章需要有一定的docker知識(shí)基礎(chǔ)上,進(jìn)行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 顯示正在運(yùn)行的容器
docker run ubuntu /bin/echo "Hello world"    注意: /bin/echo "Hello world"   表示執(zhí)行的命令
docker run -i -t ubuntu:15.10 /bin/bash   -t: 在新容器內(nèi)指定一個(gè)偽終端或終端。 -i: 允許你對(duì)容器內(nèi)的標(biāo)準(zhǔn)輸入 (STDIN) 進(jìn)行交互。
docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"    啟動(dòng)容器(后臺(tái)模式)
docker logs 2b1b7a428627   在宿主主機(jī)內(nèi)使用 docker logs 命令,查看容器內(nèi)的標(biāo)準(zhǔn)輸出:
docker stop 2b1b7a428627
docker start 2b1b7a428627   使用 docker start 啟動(dòng)一個(gè)已停止的容器
docker ps -a   查看所有的容器命令
docker run -itd --name ubuntu-test ubuntu /bin/bash    docker的服務(wù)是在后臺(tái)運(yùn)行的,我們可以過 -d 指定容器的運(yùn)行模式
docker attach    想要進(jìn)入容器,可以通過以下指令進(jìn)入,注意: 如果從這個(gè)容器退出,會(huì)導(dǎo)致容器的停止
docker exec -it 243c32535da7 /bin/bash   如果從這個(gè)容器退出,容器不會(huì)停止
docker rm -f 1e560fca3906  刪除容器
docker pull training/webapp  # 載入鏡像
docker run -d -P training/webapp python app.py   -d:讓容器在后臺(tái)運(yùn)行。  -P:將容器內(nèi)部使用的網(wǎng)絡(luò)端口隨機(jī)映射到我們使用的主機(jī)上。
docker inspect test1    可以查看掛載點(diǎn)
docker stop $(docker ps -a -q)  1.停止所有的container,這樣才能夠刪除其中的images:
docker rm $(docker ps -a -q)  如果想要?jiǎng)h除所有container的話再加一個(gè)指令:
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:
      # 時(shí)區(qū)上海
      TZ: Asia/Shanghai
      # root 密碼
      MYSQL_ROOT_PASSWORD: root
      # 初始化數(shù)據(jù)庫(后續(xù)的初始化sql會(huì)在這個(gè)庫執(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對(duì)其默認(rèn)策略做了更改 會(huì)導(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:
      # 時(shí)區(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:
      # 時(shí)區(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"
      # 控制臺(tái)端口
      - "9001:9001"
    environment:
      # 時(shí)區(qū)上海
      TZ: Asia/Shanghai
      # 管理后臺(tái)用戶名
      MINIO_ACCESS_KEY: ruoyi
      # 管理后臺(tái)密碼,最小8個(gè)字符
      MINIO_SECRET_KEY: ruoyi123
      # https需要指定域名
      MINIO_SERVER_URL: ""
      # 開啟壓縮 on 開啟 off 關(guān)閉
      MINIO_COMPRESS: "off"
      # 擴(kuò)展名 .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:
      # 時(shí)區(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:
      # 時(shí)區(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:
      # 時(shí)區(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:
      # 時(shí)區(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

 安裝成功后,運(yùn)行 docker ps 出現(xiàn)如下報(bào)錯(cuò)

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

 表示未啟動(dòng)docker,運(yùn)行下列語句即可

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

安裝完成后,運(yùn)行

docker-compose -v 

賦予權(quán)限即可

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

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

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

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
# 啟動(dòng)認(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)建出本地的鏡像了。

依次再構(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,此時(shí)必定會(huì)報(bào)錯(cuò)。報(bào)錯(cuò)如下

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

為什么要執(zhí)行一次呢,因?yàn)檫@個(gè)時(shí)候,docker-compose.yml下掛在的文件,會(huì)自動(dòng)幫你生成,省的你手動(dòng)去創(chuàng)建了。

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

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

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

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

否則會(huì)報(bào)錯(cuò):

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

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

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

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

2.6 錯(cuò)誤解決

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

ERROR: Pool overlaps with other one on this address space

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

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

再執(zhí)行docker-compose up

2.6.2 docker啟動(dòng)成功,但是無法遠(yuǎn)程連接

需要開啟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/

2.7大功告成

總結(jié)

到此這篇關(guān)于docker部署(使用docker-compose)教程的文章就介紹到這了,更多相關(guān)docker部署使用docker-compose內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker安裝ElasticSearch和Kibana的問題及處理方法

    Docker安裝ElasticSearch和Kibana的問題及處理方法

    這篇文章主要介紹了Docker安裝ElasticSearch和Kibana的問題及遇到問題解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Elasticsearch使用常見問題解決方案

    Elasticsearch使用常見問題解決方案

    這篇文章主要介紹了Elasticsearch使用常見問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • linux下如何使用docker安裝minio

    linux下如何使用docker安裝minio

    這篇文章主要介紹了linux下如何使用docker安裝minio問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 淺談Docker-compose中的depends_on順序的問題解決

    淺談Docker-compose中的depends_on順序的問題解決

    本文主要介紹了淺談Docker-compose中的depends_on順序的問題解決,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • docker部署nginx下日志自動(dòng)切割方法實(shí)現(xiàn)

    docker部署nginx下日志自動(dòng)切割方法實(shí)現(xiàn)

    部署Nginx在Docker中時(shí),其日志文件默認(rèn)不會(huì)自動(dòng)切割,與非Docker環(huán)境有所不同,本文介紹了三種日志切割方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • Docker nginx安裝與配置掛載的方法

    Docker nginx安裝與配置掛載的方法

    這篇文章主要介紹了Docker nginx安裝與配置掛載的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Docker容器內(nèi)應(yīng)用服務(wù)自啟動(dòng)的方法示例

    Docker容器內(nèi)應(yīng)用服務(wù)自啟動(dòng)的方法示例

    這篇文章主要介紹了Docker容器內(nèi)應(yīng)用服務(wù)自啟動(dòng)的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 解決docker報(bào)錯(cuò)Encountered errors while bringing up the project實(shí)測(cè)有效

    解決docker報(bào)錯(cuò)Encountered errors while bringing&n

    這篇文章主要介紹了解決docker報(bào)錯(cuò)Encountered errors while bringing up the project實(shí)測(cè)有效!具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Docker Machine深入學(xué)習(xí)

    Docker Machine深入學(xué)習(xí)

    Docker與Docker Machine 的區(qū)別?又如當(dāng)我們執(zhí)行docker-machine create命令時(shí),Docker Machine都做了些什么?這篇文章都會(huì)告訴大家,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Docker安裝MySql8并遠(yuǎn)程訪問的實(shí)現(xiàn)

    Docker安裝MySql8并遠(yuǎn)程訪問的實(shí)現(xiàn)

    本文主要介紹了Docker安裝MySql8并遠(yuǎn)程訪問的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評(píng)論