1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

dockerメモ

Last updated at Posted at 2022-01-30

勉強会用資料

boto3を使えばプログラムから情報を取れる

python3がいる

test.py
import boto3

ec2 = boto3.client('ec2',
        aws_access_key_id='XXXXXXX',
        aws_secret_access_key='XXXXXXX' ,
        region_name='ap-northeast-1'
)
responce = ec2.describe_instances(
  Filters=[{'Name':'network-interface.addresses.private-ip-address','Values':["172.31.13.240"]}]
)

print(responce)
python test.py
$ cat .bashrc
~~~~~~~~~
alias python="python3"
alias pip="pip3"

テンプレートが長くなった場合

ネスト機能を使えば分割できるらしい

awscliの初期設定

適当にやったのでやり方をまとめておく。

cloudformationテンプレート公式サンプル

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html
https://github.com/watatahiki/aws/tree/master/CloudFormation-Templates

cloudwatch(CPU使用率監視)手動設定

負荷ツールstress
https://www.ooooouchi.info/entry/2020/06/05/080000
https://go-journey.club/archives/6782

sudo yum install stress -y
  • CPU1コアに対して3分間負荷を掛けます。
stress --cpu 1 --timeout 3m
top
  • メモリ負荷を掛けたい.3分間負荷
    4つのプロセスで,400MB使う
stress --vm 4 --vm-bytes 0.1G --timeout 3m
  • ディスクに負荷を掛けたい.2分間負荷
    1プロセスがディスクに対して1GBの書き込みを2分間行なって負荷を掛けます。
 stress --hdd 1 --hdd-bytes 1G --timeout 2m

cloudwatch(Cloudformation)

https://engineers.weddingpark.co.jp/aws-cloudformation-cloudwatch-alarm/
https://github.com/watatahiki/aws/blob/master/CloudFormation-Templates/CloudWatch/CloudWatch-Alarm/CloudWatch-Alarm.yaml

cloudformationのコード生成ツール

認証がいるのでつかってない
https://dev.classmethod.jp/articles/former2/

dockerなしバージョンのcloudformationも作ってみよう

これはやめよう。やるとしたらansibleと連携

slack通知chabot

https://blog.serverworks.co.jp/2021/12/27/210000
https://dev.classmethod.jp/articles/aws-chatbot-notification-cloudformation-stack-event/
cloudformation-use-sns-topic
cloudformation-notify-role

以下の設定をした。slackとの接続を全部やってくれる
事前準備:slackで部屋を作って起動していること

  • sns
  • chabot

ガードレールのポリシーはとりあえずこれ
arn:aws:iam::aws:policy/CloudWatchReadOnlyAccess

cloudformationの中に書く通知する設定がわからない
コマンドラインからNotificationARNsを設定してスタック作成する方法はあるみたい

サンプル

aws cloudformation deploy \
    --template-file datastore.yml \
    --stack-name DataStoreStack \
    --notification-arns arn:aws:sns:ap-northeast-1:1234567890:cloudformation-use-sns-topic 

ためしてみるか

cd  ~/aws-study

aws cloudformation deploy \
    --template-file vpc-03_cloudfomation_ansible.yml \
    --stack-name test01 \
    --notification-arns arn:aws:sns:ap-northeast-1:1234567890:cloudformation-use-sns-topic \
    --capabilities CAPABILITY_NAMED_IAM

# 出力結果
Waiting for changeset to be created..
Waiting for stack create/update to complete
Successfully created/updated stack - test01

1234567890はなんでもいいのか?
自分のアカウントIDだった12桁のやつのやつ。UIから見れます。画面右上のアカウントクリック

--capabilities CAPABILITY_NAMED_IAM はおそらく、UIでスタック作成するときの最後につけているチェックになると思われる

今更だが、UIで作成指示するよりめちゃくちゃ楽だった
削除はログ消さないと失敗するので、UIから行う

ディメンション Dimensions
https://dev.classmethod.jp/articles/amazon-cloudwatch-keywords/

ansible

https://github.com/moritoki-study/prometheus-playbook
https://github.com/moritoki-study/prometheus-playbook-cloudformation
https://log.noid11.com/posts/how-to-ping-ec2-from-mac-using-ansible/
https://rurukblog.com/post/ansible-playbook-write/
https://qiita.com/ArimaRyunosuke/items/1f9d840311584d8160bc
https://densan-hoshigumi.com/server/playbook-maintainability
https://qiita.com/makaaso-tech/items/0375081c1600b312e8b0

https://github.com/ot-nemoto/amazon-ec2-by-ssm-association/tree/4304cb468eda72d993fc77cf656dd0797ee5f3a6
https://github.com/ot-nemoto/ansible-nginx

これが実際にcloudformationと連携しているansibleのサンプル

gitのファイル、ディレクトリかも、多いとcloudformationの制限にひっかかる。なので不要なものは削除する必要がある。
もしくはzipにしておく必要がある。zipはまだ試してない

課題:ansibleがエラーになってもログをみないとわからない。通知が欲しい。

  • macセットアップ
# 前提:awscliの設定して、接続できる状態
brew install ansible
ansible --version
brew install ansible-lint
mkdir ~/ansible

  • ec2作成、cloudformation
  • port解放、cloudformation
  • 実行コマンド
[12:51:16  ~/prometheus-playbook ]$ ansible-playbook -i host_vars/prod.yml site.yml
[13:44:47  ~/prometheus-playbook ]$ ansible-lint site.yml
  • prometheus
sudo mkdir /etc/prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
sudo mv ~/prometheus-2.30.3.linux-amd64/* /etc/prometheus


# daemon(常駐プロセス)
$ sudo vi /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus - Monitoring system and time series database
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target

[Service]
Type=simple
ExecStart=/etc/prometheus/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/etc/prometheus/data

[Install]
WantedBy=multi-user.target

$ sudo systemctl enable prometheus.service

# 最後に、アラートルールと、prometheus.yaml配置


# プロセス起動
 sudo systemctl start prometheus.service
http://<ホスト名>:9090

3.2. prometheus exporter

3.3. alertmanager

3.4. grafana

  1. golang
    4.3. 検証用HTTP Serverのセットアップ
    prometheusの設定
  2. alertmanagerの設定

やったこと

項目
vpc
ec2 オートスケールやってみたい
elb
ecs
lamda
cloudwatch
cloudtrail
s3
rds
iam
code4兄弟
elastic beanstalk
opsworks
cloudformation

iamで公開鍵設定したい

https://sig9.hatenablog.com/entry/2020/05/05/000000
勉強会では自分のアカウントでやってもらおう。
デフォルトではiamユーザを作れば自動でEC2にアカウントが作成されるわけではないようだ。

clooudformationの構築後の変更方法

構築後、ec2を手動で追加した場合など、その変更をtempateに取り込む方法があるようだ

qiitaをvscodeでアップデート

https://qiita.com/inayuky/items/48af9fb0b4280869cc8f
https://qiita.com/sakano/items/685b6a15dd600ccd34bd
cmd+q cmd+u

tab問題
https://qiita.com/akumachan/items/ec32d9cdf4a07dc6cc68

terraform

teraformで作ったプログラムがなんでもawsで使えるのかと思ったらそうではない。terraformでaws用で作らなければならない。1つの言語で各プラットフォーム向けのプログラムが作れるだけ。

 コンテナからグローバルIPにアクセスできるのか?

できない。なぜだろう????

状況まとめ

今できていること

  • aws環境にデプロイするcloudformationのテンプレート。インスタンス作成(1台)、各種カスタマイズ(ホスト名設定、IP設定、ロケール設定、dockerインストール、docker-composeインストール)。監視サーバの設定、起動まで一発でできる
  • dockerイメージ作成をパイプラインでおこなっている。ECRに登録

やらなければいけないこと

  • 監視設定の理解
  • slack通知
  • 本ドキュメントの整理

アラートの公式

アラートルールの解説がいい感じ

https://www.techscore.com/blog/2017/12/07/prometheus-monitoring-setting/
https://qiita.com/noexpect/items/5faab079fbf700ae7eb3

if

alertmanagerでアラートのメッセージを組み立てる

title: '{{ if eq .Status "firing" }}[FIRING]{{else}}[RESOLVED]{{end}} {{ .GroupLabels.alertname }}'
上記のメッセージを見やすくすると
title: '{{ if eq .Status "firing" }}  # .Statusはprometheusから送られてくる値
          [FIRING]
        {{else}}
          [RESOLVED]
        {{end}} 
        {{ .GroupLabels.alertname }}'  
        # タイトルには[FIRING]or[RESOLVED]のあとにアラート名がつく

text: '{{ if eq .Status "firing" }}{{ .CommonAnnotations.firing_text }}{{else}}{{ .CommonAnnotations.resolved_text }}{{end}}
上記のメッセージを見やすくすると
text: '{{ if eq .Status "firing" }}
         {{ .CommonAnnotations.firing_text }} # firing_textはpromeheusのアラートルールのannotationsで定義したプロパティ
       {{else}}
         {{ .CommonAnnotations.resolved_text }} # resolved_textはpromeheusのアラートルールのannotationsで定義したプロパティ
       {{end}}
    # 本文にはannotationsで定義したメッセージがセットされる。
       # prometheusからのデータを参照するときは、.CommonAnnotations.プロパティ名だということがわかる

聞くこと

  • {{}}の記法、yamlの中のifはbash?
  • yaml内の各項目を調べるマニュアルは?
  • httpserverの監視の意味
  • アラートは全部自分でyamlに書いて定義するしかないのか?画面から監視設定を入れるようなことはできないのか?
  • 1からアラートルールを作っていると何をつくっていいかわからない、おまかせでまとめて導入するサンプルみたいなものあるのか?

アラートルールはテストがあるようだ

yamlの構造をみたいとき

将来的にやりたいこと

  • 複数台インスタンス3、4台に機能を分割。複数台、コンテナ起動、ネットワークが別れるので難しくなる。いやグローバルIPがあれば、そんなことしなくてもいい?

  • S3 にログを記録
  • 各種カスタマイズの部分をansibleで実行する。s3かgithubにplaybookを置くだけで実行できるぽい。cloud-initで実施するのはあまりよくないらしい。処理を分けたい
  • awsの監視方法、cloudwatch、ログ監視、http監視
  • cloudformationで作成するサーバに自動停止ルールに適応cloudwatch
  • awsコマンドでスタック作成

身についている技術

  • docker
  • docker-compose
  • dockerイメージ作成、aws codebuild
  • prometheus/garafa/alertmanager
  • cloudformaiton、vscodeで開発

UI

新しいインスタンスを使うときに、DNS名を一括置換しよう

プロメテウスサーバ

test_httpserverサーバ

sudo systemctl status prometheus.service
sudo systemctl stop prometheus.service
sudo systemctl start prometheus.service

sudo systemctl status test_httpserver.service
sudo systemctl stop test_httpserver.service
sudo systemctl start test_httpserver.service

sudo systemctl status blackbox_exporter.service
sudo systemctl stop blackbox_exporter.service
sudo systemctl start blackbox_exporter.service

sudo systemctl status grok_exporter.service
sudo systemctl stop grok_exporter.service
sudo systemctl start grok_exporter.service

slackwebhook

使ってないと無効になるらしい。このメッセージ出たら再発行してみよう
有効にするボタンとかないだろうか
alertmanager | level=error ts=2022-02-13T07:05:53.806Z caller=dispatch.go:354 component=dispatcher msg="Notify for alerts failed" num_alerts=1 err="slack/slack[0]: notify retry canceled due to unrecoverable error after 1 attempts: channel \"#notice\": unexpected status code 403: invalid_token" a

追記、こっちをためしている
https://dev.classmethod.jp/articles/slack-incoming-webhook-by-slack-app/

この画面かもしれない、無効化どうかを確認
slackの画面で、設定と管理、APPの管理、画面右上のビルドをクリック、表示された画面のしたの方にexpireの文字あり
app名はalertmanager

ssh

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ec2-user@ec2-13-112-250-110.ap-northeast-1.compute.amazonaws.com

parametaerから取得してる例

Parameters:
commands:
- !Sub |

cloud-initは古いらしい。(OSの初期セットアップをしてくれる機能)

いいかも

構成図(デザイナで出力)

image.png

使っているリージョン

ap-northeast-1
外国のどこかだとずっと思っていたが、これは東京

導入資料?

アベイラビリティゾーン

おそらく4つの指定がある。2つのゾーンつかうときは、1aと1c使っておけばよいだろう

  • ap-northeast-1a
  • ap-northeast-1b 1aと1bは同じっぽい
  • ap-northeast-1c
  • ap-northeast-1d
AvailabilityZone: "ap-northeast-1a"
AvailabilityZone: "ap-northeast-1c"

組み込み関数

W3010 Don't hardcode ap-northeast-1a for AvailabilityZones 対策

metadata

そういえばsudoパスワードいつきめた?

デフォルトはないらしい

ホスト名セット

userdata実行ログ

サーバに入って

sudo cat /var/log/cloud-init-output.log
sudo less -N /var/log/cloud-init-output.log

起動テンプレート

シングルAZとマルチAZの違いは?

良さげサンプル

  • マルチでやってみよう。webサーバを2つにするだけ
  • 最初はシングル

templateのローカルチェック

[14:22:15  ~/aws-study ]$  aws cloudformation validate-template --template-body file://test.yaml

An error occurred (ValidationError) when calling the ValidateTemplate operation: Template format error: YAML not well-formed. (line 2, column 25)

vscode

https://qiita.com/Kouichi_Itagaki/items/31d640d708925c0ae838
https://qiita.com/kojiro_ueda/items/15cd7cc2535fac61fcdd

便利ツールらしい

aws図でを書くツール

cloudformation

https://qiita.com/tyoshitake/items/c5176c0ef4de8d7cf5d8
https://dev.classmethod.jp/articles/cloudformation-beginner01/
https://go-journey.club/archives/15974

デザイナ

使わない方がいい。
https://go-journey.club/archives/14087
https://dev.classmethod.jp/articles/cloudformation-knowhow/

aws toolkit

結局使ってない
https://qiita.com/toshihirock/items/d37ee8a41a11f2c4ffb2

nginxテスト

IP置換

sudo vim /data/docker/containers/prometheus/etc/prometheus/prometheus.yml
%s/172.31.13.240/3.112.52.64/g
%s/3.112.52.64/172.31.13.240/g
docker-compose up

image作成を自動化できるか?

リポジトリはpublicで作ること。privateで作ると利用するときに認証がいる

  • AmazonElasticContainerRegistryPublicFullAccess

公式手順

##  image作成パイプライン
https://github.com/moritoki-study/test_httpserver_image

docker pull public.ecr.aws/l8s6z2n6/test_httpserver:latest

codeデプロイからデプロイできるかな

https://qiita.com/tatsuya___/items/cf81a11fdb7e54bb3890
https://qiita.com/MasayaMizuhara/items/12d1f3810601f6f07e5f
後者を使った気がする。dockerだからこれではない気がする。
今はcloudinitの最後の処理でtar xvfでデータを展開している

構築環境

cd ~/
git clone https://github.com/moritoki-study/prometheus_setup.git
cd ~/prometheus_setup;sudo chown -R root:root data;sudo tar cvfz data.tar.gz data;sudo tar xfvz data.tar.gz -C /

# ルート直下に展開、。/data/....
# sudo tar xfvz data.tar.gz -C /

見やすい

UI使い方

https://tech-lab.sios.jp/archives/13294#i-2
https://christina04.hatenablog.com/entry/prometheus-node-exporter
Prometheus では監視データを取得することを “scrape” と呼んでいます。
設定してもスタックを再作成すると消える

docker-compose

  • 実施したことがないので試してみる
  • 勉強用資料では、yum等をつかってpromethusをセットアップしている。
  • 以下の資料をもとにprometheusをdockerで動かしてみることにする。

http://sheepdogjam.cocolog-nifty.com/blog/2021/08/post-bea05a.html
http://sheepdogjam.cocolog-nifty.com/blog/2021/08/post-48c0e6.html
http://sheepdogjam.cocolog-nifty.com/blog/2021/08/post-e6a62e.html
http://sheepdogjam.cocolog-nifty.com/blog/2021/08/post-d18395.html

prometheus等のDockerイメージがある

prometheus社?が作っているので安心

プロメテウスが正常なときのログ

prometheus    | level=info ts=2022-01-31T11:13:59.238Z caller=main.go:796 msg="Server is ready to receive web requests."

疎通確認

# ec2
nc -vz localhost 9090
# local
nc -vz ec2-18-183-247-78.ap-northeast-1.compute.amazonaws.com 8000

コマンド類

# yaml作成
vi docker-compose.yml

# 起動
docker-compose up
# バックグラウンドで起動
docker-compose up -d

# 停止
docker-compose down

起動したコンテナに入る

# sudo docker exec -it コンテナ名 /bin/sh
sudo docker exec -it prometheus /bin/sh
sudo docker exec -it node-exporter /bin/sh
sudo docker exec -it blackbox_exporter /bin/sh
sudo docker exec -it grok_exporter /bin/sh
sudo docker exec -it grafana /bin/sh
sudo docker exec -it alertmanager /bin/sh
sudo docker exec -it test_httpserver /bin/sh

tail -f /var/log/httpd/test_httpserver.log 

# sudo docker exec -it コンテナ名 ps -ef
sudo docker exec -it prometheus ps -ef

設定ファイルディレクトリ

# prometheus
sudo mkdir -p /data/docker/containers/prometheus/etc/prometheus/alerting_rules
sudo mkdir -p /data/docker/containers/prometheus/data

# node-exporter
いらない?

# blackbox_exporter
sudo mkdir -p /data/docker/containers/blackbox_exporter/data

# grok_exporter
sudo mkdir -p /data/docker/containers/grok_exporter/data

# grafana
sudo mkdir -p /data/docker/containers/grafana/data

# alertmanager
sudo mkdir -p /data/docker/containers/alertmanager/etc/alertmanager

設定ファイル

初期構築でgitからデータを取得して設置するようにした。

# promethus
sudo vim /data/docker/containers/prometheus/etc/prometheus/prometheus.yml 
sudo vim /data/docker/containers/prometheus/etc/prometheus/node.yaml # 今回つくらない
sudo vim /data/docker/containers/prometheus/etc/prometheus/alerting_rules/alert_sample.yml

sudo vim /data/docker/containers/prometheus/etc/prometheus/alerting_rules/blackbox.yml
sudo vim /data/docker/containers/prometheus/etc/prometheus/alerting_rules/node_monitoring.yml
sudo vim /data/docker/containers/prometheus/etc/prometheus/alerting_rules/test_httpserver_log.yml
sudo vim /data/docker/containers/prometheus/etc/prometheus/alerting_rules/test_httpserver_request.yml


# alertmanager
sudo vim /data/docker/containers/alertmanager/etc/alertmanager/config.yml 

# Blackbox Exporter
sudo vim /data/docker/containers/blackbox_exporter/config.yml 

# grok_exporter
sudo vim /data/docker/containers/grok_exporter/config.yml 
sudo vim /data/docker/containers/grok_exporter/examples.log

# grafana
sudo vim /data/docker/containers/grafana/grafana.env 

test_httpserver.goメモ

[ec2-user@ip-172-31-13-240 ~]$ wget https://raw.githubusercontent.com/kichiram/golang/main/testgo/test_httpserver.go
2022-02-05 02:04:23 (57.4 MB/s) - `test_httpserver.go' へ保存完了 [1328/1328]

[ec2-user@ip-172-31-13-240 ~]$ ls
bk  docker  docker-compose.yml  test_httpserver.go
[ec2-user@ip-172-31-13-240 ~]$ go get github.com/prometheus/client_golang/prometheus
[ec2-user@ip-172-31-13-240 ~]$ ls
bk  docker  docker-compose.yml  go  test_httpserver.go
[ec2-user@ip-172-31-13-240 ~]$ go build test_httpserver.go
[ec2-user@ip-172-31-13-240 ~]$ ls
bk  docker  docker-compose.yml  go  test_httpserver  test_httpserver.go
[ec2-user@ip-172-31-13-240 ~]$ id
uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user),4(adm),10(wheel),190(systemd-journal),992(docker)
[ec2-user@ip-172-31-13-240 ~]$ pwd
/home/ec2-user
[ec2-user@ip-172-31-13-240 ~]$ ls -l
合計 11860
drwxrwxr-x 3 ec2-user ec2-user       38  2月  2 11:19 bk
drwxrwxr-x 3 ec2-user ec2-user       98  2月  5 01:56 docker
-rw-rw-r-- 1 ec2-user ec2-user     2728  2月  2 11:09 docker-compose.yml
drwxrwxr-x 4 ec2-user ec2-user       28  2月  5 02:04 go
-rwxrwxr-x 1 ec2-user ec2-user 12132496  2月  5 02:05 test_httpserver # これでwebサーバ起動
-rw-rw-r-- 1 ec2-user ec2-user     1328  2月  5 02:04 test_httpserver.go

ここからdocker

EC2にdocker/docker-composeインストール

# docker
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker
sudo usermod -a -G docker ec2-user

# docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version  # これはsudo不要

# docker-composeの2系は導入手順が違うらしいが手順がみつからない 
# https://docs.docker.com/compose/install/#install-compose-on-linux-systems

# 任意
alias d='docker'
alias dc='docker-compose'

Dockerfile作成

mkdir ~/docker
vim ~/docker/Dockerfile
vim ~/docker/index.html

index.html

hello

docker buildを試す

sudo docker image build -t moritoki/sample:latest .
sudo docker image build -t test_httpserver:latest .

イメージ確認

sudo docker image ls

起動中のコンテナに入る

docker exec -i -t CONTAINER_ID /bin/bash
docker exec -i -t CONTAINER_ID /bin/sh

イメージの取得とコンテナに入る

sudo docker run -it --name test_dock moritoki/sample:latest /bin/bash
sudo docker run -it --name test_grok dalongrong/grok-exporter:latest /bin/bash
sudo docker run -it --name test_httpserver test_httpserver:latest /bin/bash

コンテナ起動とバックグラウンド起動

なぜか10000超えると動かないように思える

### うごかん
sudo docker run -d --name test_dock -p 10080:80 moritoki/sample:latest  # 10080がダメなのか?

### コンテナを動かす(入らない)
sudo docker run -d --name test_dock -p 8000:80 tmoritoki0227/sample:latest 
sudo docker run -d --name test_dock -p 80:80 tmoritoki0227/sample:latest

sudo docker run -d --name test_httpserver -p 8080:8080 -p 8081:8081 test_httpserver:latest

疎通確認

# ec2
nc -vz localhost 8080
# local(Mac)
nc -vz ec2-18-183-171-149.ap-northeast-1.compute.amazonaws.com  8080
nc -vz ec2-13-230-253-219.ap-northeast-1.compute.amazonaws.com  8080

ブラウザから
http://ec2-18-183-171-149.ap-northeast-1.compute.amazonaws.com:8080/hello
http://ec2-18-183-171-149.ap-northeast-1.compute.amazonaws.com:8080/world
http://ec2-18-183-171-149.ap-northeast-1.compute.amazonaws.com:8081/metrics

docker hub upload

docker login
  Username: 入力汁
  Password:  入力汁

sudo docker image build -t test_httpserver:latest .
docker image ls
docker tag test_httpserver tmoritoki0227/test_httpserver:latest
docker image ls
docker push tmoritoki0227/test_httpserver:latest

tmoritoki0227 はdockerhubのリポジトリ名に合わせないとだめ
https://hub.docker.com/repository/docker/tmoritoki0227/test_httpserver

コンテナ起動確認


sudo docker ps
sudo docker ps -a # 停止中のコンテナも表示

コンテナに入る

sudo docker attach CONTAINER ID

コンテナ停止

sudo docker container stop

コンテナ削除

sudo docker rm [コンテナID]

イメージ削除

sudo docker images で
sudo docker rmi イメージID

Dockerコマンドをsudoなしで実行する方法

非推奨らしい

## dockerグループがなければ作る
sudo groupadd docker

## 現行ユーザをdockerグループに所属させる
sudo gpasswd -a $USER docker

## dockerデーモンを再起動する (CentOS7の場合)
sudo systemctl restart docker

## exitして再ログインすると反映される。
exit

参考Doc

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?