目的
dockerコンテナにriscvのクロスコンパイラ環境を構築する際にriscv-toolchainのbuildに想像以上に時間が掛かり、また同じように環境作成を行うのはしんどいと思ったので環境作成中に一旦commitしてイメージを作成しようと考えた。ついでにdocker hubへのpushも行っておく。
参考記事
https://qiita.com/tubone/items/a3bad04abf4c700cae3d
https://www.memotansu.jp/docker/626/
http://docs.docker.jp/engine/reference/commandline/commit.html
作業環境
- Windows10 Home Insider Preview
- バージョン:2004
- OSビルドバージョン:19564
- WSL2 Ubuntu18.04
- Remote-WSL(VSCode)
手順
稼働中のコンテナの停止
まずは稼働中のコンテナを停止するので、停止するコンテナを調べる。
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e21a09577ff9 rust-env "/bin/bash" 10 hours ago Up 10 minutes rust-env
調べて停止したいコンテナがあったら停止する。
(commitする際にコンテナが一時停止するようなのでこの手順はなくていいかも)
$ sudo docker stop
dockerコンテナのイメージ作成
docker commitで以下のように作成する。
docker commit [コンテナ名] [リポジトリ名]:[tag名]
$ sudo docker commit rust-env chilchil/rust-env:latest
sha256:1cd5668d157123abe7b3422623c21f96766df0df7e9c2a850e1d28aa488dd1fe
イメージが作成されたかどうか確認する。
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
chilchil/rust-env latest 1cd5668d1571 53 seconds ago 14.3GB
docker hubにpush
作成したイメージをdocker hubにpushする。docker hubへのリポジトリの作成とかは以下を参照。
https://qiita.com/umi/items/d4b5a68263ad0444693b
$ sudo docker login
Authenticating with existing credentials...
~省略~
Login Succeeded
$ sudo docker push chilchil/rust-env
The push refers to repository [docker.io/chilchil/rust-env]
~省略~
latest: digest: sha256:175c3dadc63c15f5a3c369078999722553b9200158028cf97685baa911d0e168 size: 2624
pushしたdockerイメージを確認する。(publicである場合)
$ sudo docker search chilchil
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
chilchil/rust-env 0
以上になります。