Docker是一種開源的容器化平臺(tái),它可以幫助用戶快速部署應(yīng)用程序。在使用Docker時(shí),我們經(jīng)常需要在Docker中存儲(chǔ)密碼,以便于訪問不同的資源。下面是關(guān)于如何在Docker中存儲(chǔ)密碼的方法。
1. 使用Docker中的Secrets功能 Docker中的Secrets功能允許用戶存儲(chǔ)敏感數(shù)據(jù),如用戶名、密碼和證書等。要使用Secrets功能,您需要在Docker 1.13或更高版本中使用Swarm模式。 在Swarm模式中,您可以使用以下命令創(chuàng)建一個(gè)新的Secret: $ echo "my-secret-password" | docker secret create my-password - 這里創(chuàng)建了一個(gè)包含“my-secret-password”密碼的名為“my-password”的Secret。注意,使用破折號(hào)作為最后一個(gè)參數(shù),表示從標(biāo)準(zhǔn)輸入流中讀取密碼。 接下來,您可以使用下面的命令部署應(yīng)用程序,并為應(yīng)用程序指定一個(gè)Secret: $ docker service create --name my-app --secret my-password my-image 這里,“my-app”是應(yīng)用程序的名稱,“my-password”是我們之前創(chuàng)建的Secret的名稱,“my-image”是應(yīng)用程序的鏡像名稱。 2. 使用環(huán)境變量存儲(chǔ)密碼 除了使用Secrets功能外,您還可以使用環(huán)境變量來存儲(chǔ)密碼。在Docker中,您可以使用“-e”選項(xiàng)為容器指定環(huán)境變量。 例如,要為容器指定一個(gè)名為“MYSQL_ROOT_PASSWORD”的環(huán)境變量,可以使用下面的命令: $ docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-password mysql 這里,“my-mysql”是容器的名稱,“MYSQL_ROOT_PASSWORD”是環(huán)境變量的名稱,“my-secret-password”是環(huán)境變量的值。 3. 使用Docker配置文件 最后,您也可以使用Docker配置文件來存儲(chǔ)密碼。Docker配置文件是由YAML編寫的,可以存儲(chǔ)各種Docker設(shè)置。 要使用Docker配置文件存儲(chǔ)密碼,您可以在配置文件中添加以下內(nèi)容: version: '3.7' services: my-app: image: my-image environment: DB_PASSWORD: my-secret-password 這里,“my-app”是應(yīng)用程序的名稱,“my-image”是應(yīng)用程序的鏡像名稱,“DB_PASSWORD”是要設(shè)置的環(huán)境變量名稱,“my-secret-password”是環(huán)境變量的值。 可以通過以下命令使用配置文件部署應(yīng)用程序: $ docker stack deploy --compose-file=docker-compose.yml my-stack 這里,“docker-compose.yml”是配置文件的名稱,“my-stack”是應(yīng)用程序的名稱。