亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Docker: 容器互訪的三種方式

raoyi / 1121人閱讀

摘要:首先啟動(dòng)服務(wù)和服務(wù)如果不指定,會(huì)隨機(jī)生成一個(gè),使用可以查看到運(yùn)行容器的。新建文件,編寫如下的官方文檔查看這里。

場(chǎng)景

三個(gè)容器

digger-app: 啟動(dòng) API 服務(wù),依賴 redismysql

digger-redis: redis 服務(wù)

digger-mysql: mysql 服務(wù)

我們需要讓 digger-app 容器內(nèi)運(yùn)行的服務(wù)能夠訪問 digger-redisdigger-mysql 容器。

方法一:--link

--link 的格式為 --link name:alias,name 為需要連接到的容器的 namealias 是給這個(gè)連接取個(gè)別名。

首先啟動(dòng) redis 服務(wù)和 mysql 服務(wù):

# redis
docker run --name digger-redis -d redis:5.0.3-alpine
# mysql
docker run --name digger-mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.25

如果不指定 name,docker 會(huì)隨機(jī)生成一個(gè) name,使用 docker ps 可以查看到運(yùn)行容器的 name。

在啟動(dòng) digger-app 時(shí),指定 --link 參數(shù):

docker run --name digger-api --link digger-redis:redis --link digger-mysql:mysql -d -p 3000:3000 your-image

這樣在 digger-api 中就能通過 連接名 訪問到對(duì)應(yīng)的服務(wù)了,如與 digger-redislink 別名為 redis,那么在 digger-api 代碼中,可以指定 redishostredis,以 node.js 舉例:

// redis.js
const redis = require("redis");
const client = redis.createClient({
  host: "redis",
  port: 6379
});

// mysql.js
const mysql      = require("mysql");
const connection = mysql.createConnection({
  host     : "mysql",
  user     : "root",
  password : "root",
  database : "my_db"
});

connection.connect();

使用 docker exec 命令進(jìn)入容器,使用 ping 命令也可以查看容器是否互聯(lián)成功:

事實(shí)上,在 digger-api 容器內(nèi),如果查看 hosts 文件,可以發(fā)現(xiàn) docker 已經(jīng)將另外兩個(gè)容器配置在了 hosts 中:

/app # cat /etc/hosts
127.0.0.1    localhost
...
172.17.0.6    redis 7a6409598773 cache-redis
172.17.0.5    mysql f08bf0e0bf18 digger-mysql
172.17.0.7    6eb8dab1e6db
方法二:--network

隨著 Docker 網(wǎng)絡(luò)的完善,更建議將容器加入自定義的 Docker 網(wǎng)絡(luò)來連接多個(gè)容器,而不是使用 --link 參數(shù)。

使用 --network 命令可以指定容器運(yùn)行的網(wǎng)絡(luò),通過將多個(gè)容器指定到同一個(gè)網(wǎng)絡(luò)可以讓容器間相互訪問。

創(chuàng)建網(wǎng)絡(luò)
docker network create -d bridge my-net
指定網(wǎng)絡(luò)
# redis
docker run --name digger-redis -d --network my-net redis:5.0.3-alpine
# mysql
docker run --name digger-mysql -e MYSQL_ROOT_PASSWORD=root -d --network my-net mysql:5.7.25
# api
docker run --name digger-api --network my-net -d -p 3000:3000 your-image

不過需要注意這時(shí)候就沒有連接的別名了,在容器里面,host 直接使用對(duì)方容器的 name 訪問即可。

方法三:docker compose

Docker ComposeDocker 官方編排(Orchestration)項(xiàng)目之一,負(fù)責(zé)快速的部署分布式應(yīng)用。

新建 docker-compose.yml 文件,編寫如下

version: "3"
services:

  digger-api:
    image: "express:v1"
    ports:
      - "3000:3000"

  digger-mysql:
    image: "mysql:5.7.25"
    environment:
      - MYSQL_ROOT_PASSWORD=root

  digger-redis:
    image: "redis:5.0.3-alpine"

docker compose 的官方文檔查看 這里。

然后使用 docker-compose up -d 啟動(dòng)即可,容器會(huì)在后臺(tái)運(yùn)行。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/28074.html

相關(guān)文章

  • 一個(gè)網(wǎng)站的微服務(wù)架構(gòu)實(shí)戰(zhàn)(2)k8s遷移

    摘要:前言我們一起回顧上一篇文章平臺(tái)的微服務(wù)架構(gòu)和,一共通過構(gòu)建了三個(gè)鏡像數(shù)據(jù)庫(kù),部署前端頁(yè)面的,和接口。最近阿里云產(chǎn)品春節(jié)大促銷,我一時(shí)沒忍住又買了一臺(tái)服務(wù)器,打完折扣還是很貴。是一個(gè)非常穩(wěn)定的,可移植的網(wǎng)絡(luò)文件系統(tǒng)。 前言 我們一起回顧上一篇文章《Bees平臺(tái)的微服務(wù)架構(gòu)(1)docker和docker-compose》,一共通過Dockerfile構(gòu)建了三個(gè)docker鏡像:mysql...

    Forelax 評(píng)論0 收藏0
  • 在Kubernetes上運(yùn)行SAP UI5應(yīng)用(上)

    摘要:在上海研究院的同事們?nèi)绻雲(yún)⒓舆@個(gè)內(nèi)部培訓(xùn),可以聯(lián)系同事。第三行命名執(zhí)行命令,生成新的鏡像文件。說句題外話雖然今年月份被微軟收購(gòu)了,但是用戶體驗(yàn)一點(diǎn)也沒變,一如既往的優(yōu)秀。關(guān)于更多另類用法,請(qǐng)參閱的文章寫在被微軟收購(gòu)之際的那些另類用法。 2018年只剩最后30天了。Jerry在2017年的最后一天,曾經(jīng)立下一個(gè)目標(biāo):這個(gè)微信公眾號(hào)在2018年保證至少每周發(fā)布一篇SAP原創(chuàng)技術(shù)文章。 從...

    acrazing 評(píng)論0 收藏0
  • 在Kubernetes上運(yùn)行SAP UI5應(yīng)用(上)

    摘要:在上海研究院的同事們?nèi)绻雲(yún)⒓舆@個(gè)內(nèi)部培訓(xùn),可以聯(lián)系同事。第三行命名執(zhí)行命令,生成新的鏡像文件。說句題外話雖然今年月份被微軟收購(gòu)了,但是用戶體驗(yàn)一點(diǎn)也沒變,一如既往的優(yōu)秀。關(guān)于更多另類用法,請(qǐng)參閱的文章寫在被微軟收購(gòu)之際的那些另類用法。 2018年只剩最后30天了。Jerry在2017年的最后一天,曾經(jīng)立下一個(gè)目標(biāo):這個(gè)微信公眾號(hào)在2018年保證至少每周發(fā)布一篇SAP原創(chuàng)技術(shù)文章。 從...

    張紅新 評(píng)論0 收藏0
  • Flux7 Docker 系列教程(五):Docker 安全

    摘要:本系列教程翻譯自,系列共有九篇,本文譯自第五篇。因此,本系列教程關(guān)鍵的第五章用來討論可能面臨的安全問題以及它們是如何影響到整體的安全性的。一些必要的安全措施包括使用非特權(quán)用戶運(yùn)行容器。本圖中列舉了幾個(gè)用于維護(hù)和授權(quán)的安全性。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第五篇 Part 5: Docker Security。該系列所...

    ztyzz 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

raoyi

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<