ギャバンITサービス
お菓子の家が作れるシステムエンジニアです

docker-composeよ、さらば(dockerでV2利用)

docker-composeが非推奨になってEOLになってるの忘れてた。 代わりにdocker compose使えってか。 時間かかるかなぁって構えてたけど、あっさり終わった。 さらば、docker-compose。 もうバージョン上げることもない。 何が変わったんやろ GAっていう言い方で解説されてる方がいた。 作者さんありがとう。 Docker Compose V2(Version 2) GA のまとめ #docker-compose - Qiita qiita.com そういえば、今年の春頃、何気にaptしてたらdockerのバージョンが20から23に上がってたことあったな。 なんでか知らんけどコンテナの名前が勝手に変わってた。 作者さんのサイトによると、 コマンドラインが、V1はdocker-composeで次のV2はdocker compose コンテナ名の命名規則が Compose V1 の「_」(アンスコ)から、Compose V2 は「-」(ハイフン)に変わる V1のdocker-compose.ymlファイルは、V2用にcompose.ymlに変更する必要あるけど、今はdocker-compose.ymlでも受け付ける 英文やけど、違いの解説もあった。 Migrate to Compose v2 | Docker Docs docs.docker.com --scaleとか--compatibilityの差があるでって書いてあるけど、使ってへんし関係なさそうやな。 自分の場合は運用シェル作って使ってるから、シェル本来の機能が使えるようにするだけでええ。 変更対処 春頃にコンテナの名前が変わったなって気づいたとき、dockerにcomposeの機能がくっついたのは知らんかった。 バージョン番号が23やったかと思ったら今は24みたい。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 nari@nafslinux-ubu22:/docker$ docker version Client: Docker Engine - Community Version: 24.0.5 API version: 1.43 Go version: go1.20.6 Git commit: ced0996 Built: Fri Jul 21 20:35:18 2023 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 24.0.5 API version: 1.43 (minimum version 1.12) Go version: go1.20.6 Git commit: a61e2b4 Built: Fri Jul 21 20:35:18 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.22 GitCommit: 8165feabfdfe38c65b599c4993d227328c231fca runc: Version: 1.1.8 GitCommit: v1.1.8-0-g82f18fe docker-init: Version: 0.19.0 GitCommit: de40ad0 nari@nafslinux-ubu22:/docker$ docker composeにもバージョンがある。 ...

Dockerサービスのコンテナ作り直し

理由はわからんけど、たまにコンテナの挙動がおかしくなったり、ディスク食いすぎて領域不足になることもある。 dockerそのもののバージョンアップでエラーあったから、イメージ初期化とコンテナの作り直しやってみた。 今までは記憶に頼って作り直してたけど、忘れそうになってきたのでメモしとく。 バージョン上がってた 昨日気づいたらdockerのバージョンが20から23に上がってた。 21と22飛ばしてるのは、oracleとかみたいにリリース年の末尾2桁使ってるってことか。 先週にローカルvmで定期apt実行してたら、docker起動でエラー出たから原因探してコンテナ作り直した。 aptするときに更新対象が表示されるけど、ローカルvmは躊躇せず全部上げてくようにしてる。 このトラブル解決がええ勉強になる。 自分のlinuxにはローカルvmの中で動いてるものと、gcpで動いているものがある。 gcpが本番、ローカルvmが実験とか検証用。 ローカルvmで問題解決してからgcpの分もコンテナ作成しなおした。 今回はストレージドライバが原因 ローカルvmのはテキスト残すの忘れたけどdevicemapper使ってて、gcpで動いてるのはこんな感じでoverlayってなってた。 1 2 3 4 5 6 7 8 9 10 11 12 :(中略) Server: Containers: 5 Running: 0 Paused: 0 Stopped: 5 Images: 43 Server Version: 20.10.23 Storage Driver: overlay Backing Filesystem: extfs Supports d_type: true :(中略) エラーをjournalctl -xeu docker.serviceで確認してみた。 このメッセージ横に長くてめっちゃ貼り付けにくかった。 ...

gitlab利用

docker-composeでgitlab運用するメモ。 初めて使ったときはまだcentos動いててdockerも使ってなくて、仮想マシンを1つ作ってインストールしてた。 gitlabのインストール | ギャバンITサービス gavann-it.com その後、地味にgitの練習したっけ。 gitの基礎 | ギャバンITサービス gavann-it.com 今じゃソース管理だけじゃなく、この文章とか普段利用してるドキュメント類の維持管理で使わせてもらってる。 コマンドライン使うことはなくなってvscodeで書いてはcommitし、google cloudに持っていってpushしてる。 dockerで動かしてて、年に1回はgitlabコンテナを作り直してるのでそのメモ。 gitlabをdockerコンテナで使う いつもどおり、失敗しても何度でも作り直せる。 バージョン狙い撃ちして使える。 dockerhubに公開ページがあって、今の最新だけじゃなく履歴を教えてくれる。 ここでdocker-compose.ymlにタグ指定で使うバージョン番号を確認する。 hub.docker.com docker-compose.yml用意する 今年使ってる分の定義。 全体定義は このへん にある。 1 2 3 4 5 6 7 8 SVgitlab2022: image: gitlab/gitlab-ce:14.6.3-ce.0 ports: - 10881:80 volumes: - ./nariDockerDat/sv_gitlab2022/config:/etc/gitlab - ./nariDockerDat/sv_gitlab2022/logs:/var/log/gitlab - ./nariDockerDat/sv_gitlab2022/data:/var/opt/gitlab 来年用の定義。バージョンを今の最新に近いのにして、データ置き場もカラにして用意しておく。 ...

 ⭐️

docker-composeのバージョン上げ

githubにdocker-composeあるので、ときどき最新を取り直す。 参考 現在利用中のバージョン確認 入れてるかどうか確認する。 入ってると応答が戻る。 1 2 3 $ which docker-compose /usr/local/bin/docker-compose $ 利用中のdocker-composeバージョンを確認する。 1 2 3 nari@nafslinux-ubu22:/docker$ docker-compose --version Docker Compose version v2.6.0 nari@nafslinux-ubu22:/docker$ バージョン上げに失敗したらイヤなので、今あるバージョンをアンスコ付きのファイル名で退避しておく。 1 sudo mv /usr/local/bin/docker-compose /usr/local/bin/_docker-compose 最新バージョンの確認 公開されているバージョンを確認する。さっき見たらv2.6.1が出てた。 docker-composeの公開バージョン ベースOSのバージョンアップのときだけ、ついでにやってる。 バージョン上げる どこかテンポラリフォルダに移動して、その中に取得してから本来に位置に設置。 うまく取れなかったら、アンスコつけて退避したdocker-composeから戻す。 1 2 3 4 5 6 7 8 9 10 11 12 13 $ cd _tmp $ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o ./docker-compose % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 633 100 633 0 0 2205 0 --:--:-- --:--:-- --:--:-- 2205 100 12.1M 100 12.1M 0 0 11.7M 0 0:00:01 0:00:01 --:--:-- 21.9M $ ls docker-compose $ sudo chmod +x ./docker-compose $ sudo mv ./docker-compose /usr/local/bin/ $ docker-compose -v docker-compose version 1.29.2, build 5becea4c $ 稼働確認 起動と停止をやってみる。 docker-compose.ymlをちゃんと処理できてくれてたらOK。 ...

Dockerでサービス設定

systemctlのdocker.serviceファイル 何が正解かを見つけるのは道半ば。自信のない個所や試せてない箇所も多い。 設定ファイルはsystemctlで確認できる。 /lib/systemd/system/docker.serviceって書いてある。 1 2 3 4 5 # systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset: enabled) : (省略) 書き換えたら、必ず実行必要。でもいつも忘れる。 # systemctl daemon-reload Dockerでサービス停止するときにsocketのメッセージ docker利用環境をcent8からubuntu20に引っ越した頃、systemctlでサービス停止するときに「ソケットまだ生きてんでー」みたいなメッセージが出るようになった。 Warning: Stopping docker.service, but it can still be activated by: docker.socket とりあえずコンフィグレーションコメント化。 修正前)Requires=docker.socket containerd.service 修正後)# Requires=docker.socket containerd.service あとは"-H fd://“を外す。 ...