使用boot2docker它可以在初始化虚拟机时轻松设置一些 VirtualBox 虚拟机选项,例如:
boot2docker --disksize=50000 --memory=4096 ...
Run Code Online (Sandbox Code Playgroud)
由于最新的技术是使用我的问题创建这些虚拟机:在创建新虚拟机时docker-machine如何将这些选项传递给:docker-machine
docker-machine create -d virtualbox test
Run Code Online (Sandbox Code Playgroud) 我正在尝试在谷歌计算引擎上部署一个新的 docker 机器,但我不需要太多的资源。只是一个简单的 nginx 服务器。
当我跑步时:
$ docker-machine create --driver google --google-project my-project-name my-machine-name
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但创建了一个n1-standard-1 (1 个 vCPU,3.75 GB 内存)实例,但它的资源比我需要的多得多。我还能够成功创建一个g1-small (1 个 vCPU,1.7 GB 内存)实例。但是当我尝试创建最小的实例f1-micro (1 个 vCPU,0.6 GB 内存)时,它被卡住了Installing docker
我正在使用命令:
$ docker-machine create --driver google --google-project my-project-name --google-machine-type f1-micro my-machine-name
Run Code Online (Sandbox Code Playgroud)
控制台输出:
Running pre-create checks...
(my-machine-name) Check that the project exists
(my-machine-name) Check if the instance already exists
Creating machine...
(my-machine-name) Generating SSH Key
(my-machine-name) Creating host...
(my-machine-name) Opening firewall ports
(my-machine-name) …Run Code Online (Sandbox Code Playgroud) 这是我的docker-compose.yml,
elasticsearch:\n ports:\n - 9200:9200/tcp\n image: elasticsearch:2.4\n volumes:\n - /data/elasticsearch/usr/share/elasticsearch/data:/usr/share/elasticsearch/data\n command: /bin/bash -c \xe2\x80\x9cecho 'http.cors.enabled: true' > /usr/share/elasticsearch/config/elasticsearch.yml"\nRun Code Online (Sandbox Code Playgroud)\n它抛出错误:
\n\n\n激活 (yaml: [] 映射值在此上下文中不允许,位于第 7 行第 49 列
\n
看起来好像我无法使用冒号:登录command这是真的吗?
我正在使用 docker-machine 来配置生产 docker 环境以及 docker swarm。当您创建新的 docker-machine 时,docker用户默认密码是tcuser。您需要它来从配置.ssh/authorized_keys文件的其他站点链接您的计算机。
当您开始启动服务时,您需要更改默认的docker用户密码,以便保护您的系统免受未经授权的访问(docker 用户是 sudoer!),但是当您启动命令passwd并重新启动计算机时,您将看到您的更改已恢复。
问题:我应该在哪里或如何更改docker用户密码以在重新启动之间保留更改?
我有以下场景。
我为我的 PHP 应用程序编写了一个 Dockerfile,而不是从 dockerhub 我从头开始创建它。
例如:
FROM ubuntu:18.04
RUN apt-get update && \
apt-get install -y --no-install-recommends apt-utils && \
apt-get -y install sudo
RUN sudo apt-get install apache2 -y
RUN sudo apt-get install mysql-server -y
RUN sudo apt-get install php libapache2-mod-php -y
RUN rm -rf /var/www/html/
COPY . /var/www/html/
WORKDIR /var/www/html/
EXPOSE 80
RUN chmod -R 777 /var/www/html/app/tmp/
CMD systemctl restart apache2
Run Code Online (Sandbox Code Playgroud)
在这一步:
RUN sudo apt-get install php libapache2-mod-php -y
Run Code Online (Sandbox Code Playgroud)
我被卡住了,因为它要求用户输入,比如:
请选择您居住的地理区域。随后的配置问题将通过显示城市列表来缩小范围,代表它们所在的时区。
docker dockerfile docker-compose docker-swarm docker-machine
我收到以下错误:
$ docker container run -d --name web -p 9090:9090 -v `pwd`/webapp.war:/opt/jboss/wildfly/standalone/deployments/webapp.war jboss/wildfly
4be6d47c7e6d923fef1d04e12edd6365bdd4fe0087844018b3e5a6b0f6e0c12c
$ docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4be6d47c7e6d jboss/wildfly "/opt/jboss/wildfl..." 15 seconds ago Up 14 seconds 8080/tcp, 0.0.0.0:9090->9090/tcp web
$ curl http://localhost:9090/webapp/resources/persons
curl: (56) Recv failure: Connection reset by peer
$
Run Code Online (Sandbox Code Playgroud) 为了跟踪使用的卷,我喜欢使用命名卷。目前我有一个命名卷
docker volume ls
DRIVER VOLUME NAME
local mongodb
Run Code Online (Sandbox Code Playgroud)
我的 docker-compose 文件是这样的:
version: "3"
services:
db:
image: mongo:4.0.6
container_name: mongo
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: macmongoroot
volumes:
- mongodb:/data/db
volumes:
mongodb:
external:
name: mongodb
networks:
default:
external:
name: macbook
Run Code Online (Sandbox Code Playgroud)
每次我运行 docker-compose docker-compose up -ddocker compose 都会添加一个新的匿名卷,而不是使用指定的卷:
docker volume ls
DRIVER VOLUME NAME
local a4a02fffa9bbbdd11c76359264a5bf24614943c5b1b0070b33a84e51266c58d7
local mongodb
Run Code Online (Sandbox Code Playgroud)
这个 docker compose 文件在我的服务器上工作正常,但在我的 docker 桌面上我遇到了这个问题。目前使用 Docker Desktop 版本 2.0.0.3 (31259)。任何帮助将不胜感激,谢谢
我需要能够在不允许安装 Docker 的 Linux 虚拟机中下载 Docker 映像。那可能吗 ?