首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建带有Wordpress映像的Docker容器并使用gcloud中的环境变量

如何创建带有Wordpress映像的Docker容器并使用gcloud中的环境变量
EN

Server Fault用户
提问于 2020-06-07 14:29:55
回答 1查看 327关注 0票数 0

我想要创建一个带有Wordpress图像的实例容器。

我可以用以下方法创建容器:

代码语言:javascript
复制
gcloud compute instances create-with-container test-container --container-image=registry.hub.docker.com/library/wordpress --tags=http-server --zone=europe-west1-b --machine-type=n1-standard-1

如何传递映像的环境变量?

代码语言:javascript
复制
-e WORDPRESS_DB_HOST=10.0.0.0
-e WORDPRESS_DB_USER="test"
-e WORDPRESS_DB_PASSWORD="test"
-e WORDPRESS_DB_NAME="test"
-e WORDPRESS_TABLE_PREFIX="wp_"

我可以用创建容器语句中的标志来完成这个任务吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-06-08 12:43:30

类似于允许传递环境变量的docker run命令:

代码语言:javascript
复制
$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  --env , -e        Set environment variables
  --env-file        Read in a file of environment variables

gcloud compute instances create-with-container支持类似的功能和命令行参数:

代码语言:javascript
复制
$ gcloud compute instances create-with-container INSTANCE_NAMES [INSTANCE_NAMES …]

  --container-env=[KEY=VALUE, …,…]
    Declare environment variables KEY with value VALUE passed to container. 
    Only the last value of KEY is taken when KEY is repeated more than once. 
    Values, declared with --container-env flag override those with the same KEY from file, provided in --container-env-file. 

  --container-env-file=CONTAINER_ENV_FILE
    Declare environment variables in a file. 
    Values, declared with --container-env flag override those with the same KEY from file.
    File with environment variables in format used by docker (almost). This means:
    • Lines are in format KEY=VALUE.
    • Values must contain equality signs.
    • Variables without values are not supported (this is different from docker format).
    • If # is first non-whitespace character in a line the line is ignored as a comment.
    • Lines with nothing but whitespace are ignored.

例如

代码语言:javascript
复制
CloudShell:$ gcloud compute instances create-with-container nginx-container --container-image gcr.io/cloud-marketplace/google/nginx1:1.14 --zone=europe-west3-c --tags=nginx --container-env=MYVAR1=myval1,MYVAR2=myval2

或者,您可以创建一个类似于下面的create-vm.sh的shell脚本:

代码语言:javascript
复制
#!/bin/bash
set -x
gcloud compute instances create-with-container nginx-container --container-image gcr.io/cloud-marketplace/google/nginx1:1.14 --zone=europe-west3-c --tags=nginx --container-env=MYVAR1=$1,MYVAR2=$2

使用命令行中传递的变量启动它:

代码语言:javascript
复制
CloudShell:$ chmod +x create-vm.sh
CloudShell:$ ./create-vm.sh myval1 myval2

然后通过SSH连接到新创建的VM实例nginx-container,并检查Docker容器中的变量:

代码语言:javascript
复制
nginx-container:$ sudo docker ps
CONTAINER ID    IMAGE                   COMMAND         CREATED     STATUS  NAMES 
8637cbacf2e1    gcr.io/cloud-marketplace/google/nginx1:1.14             "/usr/local/bin/dock…"  4 minutes ago   Up 4 minutes    klt-nginx-container-ikrz 
nginx-container:$ sudo docker exec 8637cbacf2e1 printenv MYVAR1 MYVAR2
myval1
myval2

Docker >命令行引用> Docker (停靠)>码头运行

Developer Tools > Cloud :命令行接口> Doc > Reference > gcloud计算实例-用容器创建

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1020390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档