no-image

Dockerの使い方をググっても端末の起動という基本中の基本の解説がサラッと流されていて詰んだ話

Dockerを使ってみて最初に詰むのがターミナルを開くことですよね?

ググって出てくる初心者向けの入門解説は
その部分をすっ飛ばしているのでおいおいと詰みがち。

というわけでイメージを引っ張ってきて
端末を開くまでの手順だけをメモしていきます。

まずはサービスの起動

最初にDockerを起動しようとすると
下記のようなエラーが出てきます。

Using default tag: latest
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?). Using system default: https://index.docker.io/v1/
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

これはサービスを起動していないのが原因なので起動しましょう。

systemctl start docker.service

とりあえずイメージを拾ってくる

今回は手順の解説なのでUbuntuのイメージに決め打ちします。
コピペしてください。

sudo docker pull ubuntu

Error: No such container: ubuntuにマジギレ(愚痴の章なので読み飛ばし推奨)

ここまでは私も順調だったんですよ!!!

そこでコンテナファイルの起動方法として言われているコマンドに沿って

docker exec -it ubuntu /bin/bash

というように入力すると。。。

Error: No such container: ubuntu

?????

# docker images 

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu latest cd6d8154f1e1 2 weeks ago 84.1MB

いやいや、あるじゃないですか!!!!!!
No such containerって何ですか一体!!!!!!

イメージファイルとコンテナファイルは違うので注意

上記のエラーの原因は

コンテナファイルを開くべきコマンドで
イメージファイルの名前を指摘していたことでした。
なので最初にイメージファイルからコンテナファイルの作成ということをしないと行けなかったんですね。

全くもってややこしい話です。

コンテナファイルの作成(超々々々重要項目)

イメージファイルからコンテナファイルを作成していきます。

イメージファイルを引っ張っただけでは何もできないので注意しましょう。

ここまでの段階で色々と余計なことをしていると予想されるので
まずはコンテナファイルを一括で削除しておきます。※余計なことをした自覚のある人のみ

docker rm $(docker ps -aq)

bashの起動

あとは起動するだけ

docker run -it ubuntu bash

お疲れ様でした。

作業内容を保存せよ!!

Dockerは作業内容を保存しません!!!!

保存したい場合には新たにイメージを作成する必要があります。

まずはコンテナのターミナル上で
「Ctrl-p+Ctrl-q」と入力。

コントロールを押しながら「p」を押して「q」です。

なにやら端末の画面がホストOSのものになって冷や汗を掻きますが安心してください
単に抜け出しただけでこの時点では作業内容は無事です。

docker ps -aと入力すると
なにやら文字列が出てきます。

# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
044e69a91f40 ubuntu "bash" 23 minutes ago Up 23 minutes infallible_rosalind

このコンテナIDという部分をコピーしておいてください、保存の際に利用します。

# sudo docker commit -m "覚えやすいメモ" 044e69a91f40 my_ubuntu
sha256:db93d391e1eb9120e88c7fd2bf86cea9ac4fff809c5bc169f1c0e063d35345a0

上記のように入力をすることでイメージの保存が可能です。
保存には結構時間がかかるので気長に待ちましょう。

参考サイト:https://qiita.com/tomoeine/items/df4c5e97fe630cccc1e5

 

とりあえずこんな所ですね。

この記事がDockerで詰んでキーボードを叩き壊す寸前な方の役に立てれば幸いです。