嘿,大家好!今天給大家介紹一項強大而有趣的技能,那就是使用 Docker 和 Docker Compose 來釋放你的應用部署的威力!無論你是一名開發人員還是系統管理員,掌握這個技能都將為你的工作帶來巨大的好處。
本文大綱如下,
圖片
這里給大家分享我的 Docker 一鍵安裝腳本,在大部分基于 Linux 內核的系統中可以直接使用。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunsudo systemctl enable dockersudo systemctl start dockerdocker versionif [ $? -eq 0 ];thenecho "docker successful installation!"fi# 添加國內鏡像touch /etc/docker/daemon.jsonecho "{ /"registry-mirrors/": [ /"http://hub-mirror.c.163.com/" ]}" > /etc/docker/daemon.jsonsudo systemctl daemon-reloadsudo systemctl restart docker
Docker 的語法非常易懂,它使用簡潔的命令和關鍵字來定義和管理容器。下面是一些常用的 Docker 語法元素:
下面是一些常用的 Docker 命令,讓我們一起來了解一下:
以上只是一小部分常用的命令,Docker 提供了很多其他有用的命令和選項,讓你可以更靈活地管理容器和鏡像。
Dockerfile 是一個文本文件,用來描述如何從一個基礎鏡像(例如 ubuntu 或 alpine)構建出一個新的鏡像,包括安裝依賴、復制文件、設置環境變量、暴露端口等操作。使用 Dockerfile 可以讓開發者清晰地記錄應用程序的配置和依賴,以及保證應用程序在不同的環境中運行的一致性。
一個簡單的 Dockerfile 文件示例如下:
# 基于 Java 鏡像構建FROM openjdk:8u212-jre# 配置參數ENV TZ=Asia/ShanghaiENV JAVA_OPTS="-Xms128m -Xmx256m -Dfile.encoding=UTF-8"# 設置時區RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone# 設置工作目錄WORKDIR /app# 復制 jar 包到鏡像里COPY target/my-app.jar /app/my-app.jar# 暴露端口EXPOSE 8080# 配置啟動命令CMD java $JAVA_OPTS -jar /app/my-app.jar --server.port=8080
簡單介紹下上述 Dockerfile 示例的語法:
我們要使用 Dockerfile 構建鏡像的話,可以使用以下命令:
docker build -t my-app .
其中 -t 參數指定了鏡像的名稱和標簽(默認為 latest),. 表示當前目錄尋找 Dockerfile 文件。
要運行構建好的鏡像,可以使用以下命令:
docker run -p 8080:8080 my-app
其中 -p 參數指定了容器內外部的端口映射關系,my-app是鏡像的名稱。
這樣我們的 Java 服務就可以在容器里運行,并能夠通過宿主機的 8080 端口訪問了。
這里給大家繼續分享我的 Docker Compose 一鍵安裝腳本,大家可以直接使用。
sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composedocker-compose --version //The following appears,your docker-compose is installation success.
在國內網絡中可能遇到 docker-compose 文件下載失敗、超時,大家可直接上傳本地已經下載好的 docker-compose 文件,也可以私聊我獲取最新 docker-compose 文件。
除了 Docker 命令,我們還可以使用 Docker Compose 來簡化多個容器的管理和部署。
在實際開發中,一個應用程序通常不是單獨運行的,而是需要與其他服務(例如數據庫、緩存、消息隊列等)進行交互。這些服務也可以使用 Docker 來運行,但是如果每個服務都需要單獨使用docker run命令來啟動,那么就會非常繁瑣和容易出錯。為了解決這個問題,可以使用 docker-compose 來定義和運行多個容器之間的依賴和協作關系。
docker-compose 是一個工具,可以讓開發者使用一個 YAML 文件(通常命名為docker-compose.yml)來描述多個容器之間的配置,包括鏡像、端口、環境變量、掛載卷、網絡等。使用 docker-compose 可以讓開發者一次性地啟動或停止所有相關的容器,以及方便地管理容器之間的通信。
一個簡單的 docker-compose.yml 示例如下:
version: '3'services: waynboot-mobile-api: image: ibm-semeru-runtimes:open-17-jdk container_name: mobile volumes: - /etc/localtime:/etc/localtime - /home/logs:/home/logs - /opt/waynboot-mall/upload:/opt/waynboot-mall/upload - ./jars/waynboot-mobile-api.jar:/home/app/waynboot-mobile-api.jar restart: always command: java -Xms512m -Xmx512m -Duser.timeznotallow=GMT+8 -Dfile.encoding=utf-8 -jar /home/app/waynboot-mobile-api.jar ports: - "82:82" environment: - TZ=Asia/Shanghai - LOG_PATH_PREFIX=/home/logs - UPLOAD_DIR=/opt/waynboot-mall/upload network_mode: "host" # 依賴于redis和mysql,在啟動本服務之前會先啟動依賴的服務 depends_on: - redis - mysql - rabbitmq - elasticsearch
當編寫 Docker Compose 文件時,以下是更詳細的語法和配置選項解釋:
context:構建上下文路徑,表示構建時 Docker 將查找 Dockerfile 文件的位置。
dockerfile:指定使用的 Dockerfile 文件名。默認為 Dockerfile。
image:指定要使用的鏡像名稱。可以是公共鏡像(例如 nginx、mysql等),也可以是本地構建的私有鏡像。如果指定了 build,則會優先使用構建的鏡像。
build:用于指定構建鏡像所需的 Dockerfile 的路徑。可以是相對于 Docker Compose 文件的相對路徑,或者是包含 Git URL 的完整路徑。
ports:定義容器和主機之間的端口映射關系。可以是單個端口,也可以是一個范圍。格式為 [主機端口]:[容器端口]。例如,ports: - "8080:80" 表示將容器內的 80 端口映射到主機的 8080 端口。
volumes:定義容器和主機之間的文件卷綁定關系。格式為 [主機路徑]:[容器路徑],可以指定只讀或可寫。例如,volumes: - "./data:/app/data:ro" 表示將主機上的 ./data 目錄掛載到容器內的 /app/data 路徑,并以只讀方式訪問。
environment:設置容器中的環境變量。可以是一個鍵值對或一個列表。例如,environment: - MYSQL_ROOT_PASSWORD=mysecretpassword 設置了一個名為 MYSQL_ROOT_PASSWORD 值為 mysecretpassword 的環境變量。
depends_on:指定服務之間的依賴關系。例如,depends_on: - db 表示該服務依賴于名為 db 的服務,在啟動時會先啟動 db 服務。
command:定義容器啟動時要執行的命令。例如,command: bundle exec rails server 表示在容器啟動時執行 bundle exec rails server 命令。
需要注意的是,在編寫 Docker Compose 文件時,縮進和格式非常重要。使用正確的縮進,并確保語法正確才能成功構建和啟動服務。
當使用 Docker Compose 來管理容器化應用程序時,下面是一些常用的 Docker Compose 命令,讓我們一起來了解一下:
$ docker-compose up -d
$ docker-compose down
$ docker-compose stop [options] [SERVICE...]
$ docker-compose ps
$ docker-compose build
$ docker-compose logs -f
這是一些常用的 Docker Compose 命令,可以幫助你管理和操作容器化的應用程序。同時 Docker Compose 還提供了其他命令和選項,如重啟服務、擴展服務、查看配置等,可以根據需求進行使用。
在本文中,我們了解了 Docker 的基本語法和一些常用命令。Docker 的簡潔、靈活和高效使得它成為部署應用的首選工具。而通過 Docker Compose,我們可以進一步簡化和組織多個容器的管理,實現更高水平的部署。
無論是開發新的應用還是遷移現有的應用,Docker 和 Docker Compose 將成為你的得力助手。開始探索 Docker 的無限可能吧,釋放你的應用部署的威力!
本文鏈接:http://www.www897cc.com/showinfo-26-63232-0.htmlDocker與Docker Compose入門:釋放你應用部署的威力
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 批量執行Redis命令的四種方式!
下一篇: Go 構建高效的二叉搜索樹聯系簿