カズ之助のいろいろ

なんかいろいろ書いたり書かなかったりします

Dockerをsudoなしで叩こうとしたら怒られが発生した話

暇で暇で仕方のないGW、今年はどうやら天皇陛下が退位されるとのことでこんなにもながいながい10連休となっているらしい。まぁ、弊学は課題もりもり9連休なんですがね。うんち!w

さて、暇で暇で仕方がないため、何かやってみようと思った。せっかくなので、自分でWebサイトを立ち上げ、それを攻撃してみようと思う。暇だし。

始めに断っておくが、私は全然Dockerに詳しくない、むしろ今回始めてDockerを触るようなド素人だ。
素人は黙っとれ――。という声があちらこちらから聞こえてきそうだ。おもしろ。

故にどこか間違えている部分があるかもしれない。ガチプロ読者の諸君らは生暖かい目で見ていただきたい。初心者はミスを犯すものなのだ。多分。

ちなみに こちらのページを参考にさせていただいた。

qiita.com


あと、このページでは一応解決方法とかも載せるつもりではいるが、正直解説なんてわんさかインターネットに転がっているので、このページでは私が苦しんでいる様を諸君らにお届けしようと思う。故に解説の優先度は低い。

環境

$ docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.4
 Git commit:        e68fc7a
 Built:             Wed Apr 17 14:48:36 2019
 OS/Arch:           linux/amd64
 Experimental:      false
Got permission denied while trying to connect to th長いエラーメッセージなので以下略

Dockerコンテナの起動

まずはこれからWebサーバとなってもらうDockerコンテナを起動する。

docker container run --name web -d -p 8888:80 -v $(pwd):/usr/share/nginx/html nginx:alpine

このコマンドをターミナルに入力していくっぽい。各オプションの説明とかはさっきのQiitaのページを見てね。
そんで、入力していくと……

謎の英文メッセージ

f:id:kazuki19992:20190502154440p:plain
なんかよくわかんないエラーが出てきた!!!!!!!

筆者はアメリカ語が苦手なので、まっさきに翻訳サイトにかけた。
せっかくなので最近少し話題になっているみらい翻訳にかけてみようと思う。

f:id:kazuki19992:20190502155413p:plain
どっかーでーもんそけっと???
どっかーでーもんそけっと?なんじゃそれ???
よくわからなかったので調べてみたらDockerデーモンと呼ばれるやつのソケットらしい。うん。
全然わかってない。わからない哲也である。

んで、いろいろ調べると、どうやらsudoを頭につけてやれば動くらしい。面倒くせぇな(暴言)
早速検証してみようと思う。

f:id:kazuki19992:20190502161644p:plain
うごきますように
f:id:kazuki19992:20190502161755p:plain
動いた!!
これからは毎回sudoをつけていこうと思いました。(小並感)


でもそれってぶっちゃけ面倒くさい

それな(それな)
クソ面倒くさい。でもどうすれば……
いろいろ調べているとこのページが出てきた。
qiita.com

Qiitaユーザの皆さんほんまありがとうございますやでぇ……
バージョンこそ違うけど動くやろきっと(楽観的)

$ sudo gpasswd -a kazuki19992 docker
ユーザ kazuki19992 をグループ docker に追加

$ sudo chgrp docker /var/run/docker.sock

うまく追加されたようだ。
これでログアウトからのログインのコンボをしっっかりとキメていけば動くはずである(確信)

それでは最初のコマンドを打ち込んでみよう。

$ docker container run --name webServer -d -p 8080:80 -v $(pwd):/usr/share/nginx/html nginx:alpine 
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/create?name=webServer: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
???????????????????????


おっぱい「ぼく」
ワイがどこかで操作をミスってしまったのだろうか……?
しかし、コマンドを見た限りミスった箇所は見当たらなかった……
とりあえず、別の記事の内容を試してみることにした。

涙の再走

続いてこのページを参照してもう一度操作をやり直すことにした。

unskilled.site

とりあえず書かれているとおりに以下のコマンドを入力した。

$ sudo usermod -aG docker kazuki19992

そして、とりあえず一度ログアウトをして、私自身にsudo権限を与えてみることにした。

sudo visudo

上のコマンドを入力して、出てきたファイルを編集する。

# User privilege specification
root    ALL=(ALL:ALL) ALL
kazuki19992 ALL=(ALL:ALL) ALL  #この行に追加していく

これで動いてください!おねがいします!なんでも以下略

docker: Got permission denied while trying to connect to the Docker daemon socket

(´;ω;`)ウッ…

諦めてsudoコマンドを入力し続けるでござる……
「こうするといいぽよ」という方は教えてください(懇願)
Dockerむずかしいまる


平成31年5月2日追記(令和元年なんだよなぁ……)

なるほどなぁ……と思った(適当)
コマンドからインスコすると場合によってはうまく行かないってことね。完全に理解した。(ほんまか?)
一度アンインストール(ぼくらの)してDocker Hubからインストールしてみますか。

$ sudo apt-get purge docker-ce
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
パッケージ 'docker-ce' はインストールされていないため削除もされません
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 33 個。

$ sudo apt-get purge docker   
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
パッケージ 'docker' はインストールされていないため削除もされません
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 33 個。

$ sudo apt-get remove docker docker-engine
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
パッケージ 'docker-engine' はインストールされていないため削除もされません
パッケージ 'docker' はインストールされていないため削除もされません
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 33 個。

ん?なんだ??初心者か?(๑•ૅㅁ•๑)??
うん!Dockerは入ってないらしい!!!!!!くそったれ!!!!!

f:id:kazuki19992:20190502175939p:plain はい、というわけで入れていきましょう。(平常運転)
.
..
...
これ.debファイルとか.tar.gzとかで配布されてるわけじゃないのね(かなしい)
とりあえずこ↑こ↓を見ながら手順通りやっていきをしていく。

以下に入力したコマンドを示す。

$ sudo apt-get update

$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

$ sudo add-apt-repsudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs)  stable"

$ sudo apt-get update

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

$ apt-cache madison docker-ce

$ sudo apt-get install docker-ce=5:18.09.5~3-0~ubuntu-bionic docker-ce-cli=5:18.09.5~3-0~ubuntu-bionic containerd.io

$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

とまぁ、こんな感じでいい感じに再インストールされた。
ここまでやって体力が尽きたのでまた近いうちに続きをやろうと思う。多分。

はろーわーるど

はろーわーるど

どうも、私はカズ之助といいます。日本大学の工学部にいるかわいいかわいいJKです!❤
編集当時は20歳です。 つい先日20歳になりました。
もうちょっと子供でいたかったです。

今、ヴァネキャスで受験生 Advent Calendar 2018 - Adventar「怪文書」補集合・著 ヴァネロピ・編集 - vane11ope’s blogを聞きながらこれを書いています。

特に何も書くことがないのにこの記事を書いているのは普通にすごいので誰か褒めてください。

じゃあ、ヴァネキャスに戻ります。

記事作成時間:3分