目的

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               

以上になります。

bannerAds