我如何 运行 来自 DockerFile 的 docker 实例?
How do I run a docker instance from a DockerFile?
我终于想出了如何docker起来和运行。
docker run --name my-forum-nodebb --link my-forum-redis:redis -p 80:80 -p 443:443 -p 4567:4567 -P -t -i nodebb/docker:ubuntu
我把它链接到一个redis实例,酷。
这是从头开始的,我假设在创建 redis 实例时
docker run --name my-forum-redis -d -p 6379:6379 nodebb/docker:ubuntu-redis
它从远程仓库中拉取图像?
NodeBB 提供了一个 Dockerfile
https://github.com/NodeBB/NodeBB/blob/master/Dockerfile 我不太确定如何使用它。我假设我可以通过在我的遥控器上调用这个 Dockerfile 以某种方式创建一个本地环境。
这是正确的吗?如果是这样,我如何创建指向远程的本地实例?
从同一目录下载文件 运行 docker build -t nodebb .
这会在您的本地机器上为您提供一个名为 nodebb 的映像,您可以使用 docker run -d nodebb
从中启动一个容器(您可以将 nodebb 更改为您自己的名称).
您不能从 Dockerfile 启动容器。
过程是这样的:
Dockerfile =[docker build
]=> Docker image =[docker run
]=> Docker container
要启动(或运行)一个容器,您需要一个镜像。要创建镜像,您需要构建 Dockerfile[1].
[1]:您还可以 docker import
来自 tarball 的图像或再次 docker load
。
虽然其他答案可用,但这确实对我有帮助,所以我也把它放在这里。
Instead of specifying a context, you can pass a single Dockerfile in
the URL or pipe the file in via STDIN. To pipe a Dockerfile from
STDIN:
$ docker build - < Dockerfile
With Powershell on Windows, you can run:
Get-Content Dockerfile | docker build -
构建完成后,运行 命令:
docker image ls
你会看到这样的东西:
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 123456789 39 seconds ago 422MB
复制您的实际图像 ID,然后 运行
docker run 123456789
最后的数字是上一步的实际图像 ID
如果您不想记住图片id,可以通过
标记您的图片
docker tag 123456789 pavel/pavel-build
这会将您的图片标记为 pavel/pavel-build
简单直接的解决方案是:
docker build .
=> ....
=> Successfully built a3e628814c67
docker run -p 3000:3000 a3e628814c67
3000
- 可以是任何端口
a3e628814c68
- 成功构建命令给出的哈希结果
注意:您应该位于包含 Dockerfile.
的目录中
标题让我来到这里,它直接从 Dockerfile 运行容器。
docker build --no-cache . | grep "Successfully built" | sed 's/Successfully built //g' | xargs -I{} docker run {}
使用 docker 桌面 20.10.8
您可以使用 docker-compose 文件来命名和配置您的环境。
services:
my_instance:
build:
context: .
dockerfile: my_instance.dockerfile
然后 docker compose up
或 docker compose run /bin/bash
或其他。
每https://docs.docker.com/compose/compose-file/compose-file-v3/#dockerfile
我们可以看到 docker 文件在项目文件夹中 E:\Code SAmple\flutqr
构建命令
docker build -t fluweb .
fluweb
是容器的名称你可以指定任何名称
.
表示当前目录
我终于想出了如何docker起来和运行。
docker run --name my-forum-nodebb --link my-forum-redis:redis -p 80:80 -p 443:443 -p 4567:4567 -P -t -i nodebb/docker:ubuntu
我把它链接到一个redis实例,酷。
这是从头开始的,我假设在创建 redis 实例时
docker run --name my-forum-redis -d -p 6379:6379 nodebb/docker:ubuntu-redis
它从远程仓库中拉取图像?
NodeBB 提供了一个 Dockerfile
https://github.com/NodeBB/NodeBB/blob/master/Dockerfile 我不太确定如何使用它。我假设我可以通过在我的遥控器上调用这个 Dockerfile 以某种方式创建一个本地环境。
这是正确的吗?如果是这样,我如何创建指向远程的本地实例?
从同一目录下载文件 运行 docker build -t nodebb .
这会在您的本地机器上为您提供一个名为 nodebb 的映像,您可以使用 docker run -d nodebb
从中启动一个容器(您可以将 nodebb 更改为您自己的名称).
您不能从 Dockerfile 启动容器。
过程是这样的:
Dockerfile =[
docker build
]=> Docker image =[docker run
]=> Docker container
要启动(或运行)一个容器,您需要一个镜像。要创建镜像,您需要构建 Dockerfile[1].
[1]:您还可以 docker import
来自 tarball 的图像或再次 docker load
。
虽然其他答案可用,但这确实对我有帮助,所以我也把它放在这里。
Instead of specifying a context, you can pass a single Dockerfile in the URL or pipe the file in via STDIN. To pipe a Dockerfile from STDIN:
$ docker build - < Dockerfile
With Powershell on Windows, you can run:
Get-Content Dockerfile | docker build -
构建完成后,运行 命令:
docker image ls
你会看到这样的东西:
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 123456789 39 seconds ago 422MB
复制您的实际图像 ID,然后 运行
docker run 123456789
最后的数字是上一步的实际图像 ID
如果您不想记住图片id,可以通过
标记您的图片docker tag 123456789 pavel/pavel-build
这会将您的图片标记为 pavel/pavel-build
简单直接的解决方案是:
docker build .
=> ....
=> Successfully built a3e628814c67
docker run -p 3000:3000 a3e628814c67
3000
- 可以是任何端口
a3e628814c68
- 成功构建命令给出的哈希结果
注意:您应该位于包含 Dockerfile.
的目录中标题让我来到这里,它直接从 Dockerfile 运行容器。
docker build --no-cache . | grep "Successfully built" | sed 's/Successfully built //g' | xargs -I{} docker run {}
使用 docker 桌面 20.10.8
您可以使用 docker-compose 文件来命名和配置您的环境。
services:
my_instance:
build:
context: .
dockerfile: my_instance.dockerfile
然后 docker compose up
或 docker compose run /bin/bash
或其他。
每https://docs.docker.com/compose/compose-file/compose-file-v3/#dockerfile
我们可以看到 docker 文件在项目文件夹中 E:\Code SAmple\flutqr
构建命令
docker build -t fluweb .
fluweb
是容器的名称你可以指定任何名称.
表示当前目录