私はnodeserver1という名前の実行中のコンテナを持っています。ノードサーバーを実際に実行するために次のコマンドを発行しました docker exec -d nodeserver1 nodejs ipshow.js
次回このイメージからコンテナを作成するときにexecコマンドを発行する必要がないように、nodeserver1からイメージを作成するにはどうすればよいですか。 docker commit <container id> <some-new-name>
を使用してコミットしようとしましたが、新しいコンテナを実行するとノードサーバーが起動しません。あなたはおそらく、多段ビルドを使用したいそのコンテナでサーバーを実行するコマンドを実行した後に、コンテナからイメージを作成する方法はありますか?
0
A
答えて
1
:https://docs.docker.com/engine/userguide/eng-image/multistage-build/
はここでドッキングウィンドウのドキュメントからコピーした例shamelessyです:
FROM golang:1.7.3
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v golang.org/x/net/html
COPY app.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=0 /go/src/github.com/alexellis/href-counter/app .
CMD ["./app"]
おそらくこれは、名前付きを使用して、より良い例である構築します
FROM golang:1.7.3 as builder
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v golang.org/x/net/html
COPY app.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /go/src/github.com/alexellis/href-counter/app .
CMD ["./app"]
ここでは、キーはCOPY --from=builder /go/src/github.com/alexellis/href-counter/app .
です。 --from=builder
を使用して、他のイメージからアーティファクトをフェッチする方法に注目してください。
関連する問題
- 1. dockerコンテナからのdockerコマンドの実行
- 2. dockerイメージをコンテナとして実行しないでファイルをリストする方法はありますか?
- 3. Windowsでjenkinsコンテナを実行するdockerコマンドは何ですか?
- 4. コンテナが実行された後にスクリプトを実行する方法
- 5. Dockerfile、Host、またはIntermediateコンテナからRUNコマンドを実行する場所はありますか?
- 6. Ruby。コマンドを作成して実行に送る方法はありますか?
- 7. 最後に実行されたコマンドをsource()で実行する方法はありますか?
- 8. コンポジションから起動されたコンテナから実行中のコンテナにアクセスする
- 9. CMDを実行した後、Dockerコンテナからホストにログファイルをコピーします。
- 10. コンテナを実行した後にホスト名を変更します。
- 11. ドッキング・コンテナをライブWebサーバーで実行できますか?
- 12. 別のものの中からコンテナ上でコマンドを実行
- 13. eventriggerの動作でコマンドを実行する方法はありますか?
- 14. Dockerコンテナを停止するときにコマンドを実行できますか?
- 15. vimでファイルを保存した後、bashコマンドを静かに実行する方法はありますか?
- 16. 一度に複数のDockerコンテナでコマンドを実行する
- 17. Linux + Docker - Dockerコンテナからホストのアプリケーションを実行するには?
- 18. tarのイメージビルドからコンテナを実行するには?
- 19. Proxmox:VMまたはコンテナからVZコンテナを作成する
- 20. Springコンテナ内から実行可能なjarを実行するには?
- 21. Docker-compose:コンテナ内でコマンドを実行するように作成を自動化できますか?
- 22. Wordpress:PHPスクリプトからcliコマンドを実行する方法はありますか?
- 23. DockerコンテナのPythonスクリプトを実行してDockerfileのCMDを実行する方法
- 24. CMDで実行したコマンドからバッチファイル(.bat)を作成する方法
- 25. ドッカー - コンテナを実行するときにはbashを実行
- 26. ローカルホストから実行中のコンテナにファイルをコピーする方法は?
- 27. Amazonで実行中のコンテナから新しいドッカー画像を作成する方法は?
- 28. ドッキング・コンテナを実行中に新しいマウントを再ロードできる方法はありますか?
- 29. Kubernetesで別のコマンドでドッキング・コンテナを実行する
- 30. DOCKER:ドッカーが実行された後にコンテナ内で1回だけコマンドを実行する
+1。キーは、ビルドファイルの最後にあるCMDコマンドです。ドッカーコンテナをコミットするだけで、コンテナの起動時にドッカーにファイルが実行されることはありません。これは、ビルドファイルの一部であるか、ドッカー(exec)またはドッカーの作成指示の一部です。 –
@ChrisMitchell:あなたが意味することを誤解しているかもしれませんが、私はあなたがCMDの前にCOPYコマンドを意味したと思います。私が間違っている場合は私を修正してください。 – Stefano
CMDコマンドはありません。コンテナが起動するときに何を実行するかをドッカーに指示する命令。こちらをご覧ください:https://docs.docker.com/engine/reference/builder/#cmd –