zaki work log

作業ログやら生活ログやらなんやら

Docker

[Oracle Cloud/A1.Flex] armアーキテクチャのLinuxへpipでDocker Composeインストール

Oracle CloudのA1.Flexのように、aarch64/arm64のアーキテクチャへのDocker本体のインストールは以下のとおり公式の手順で(ディストリビューションが対応してれば)インストールできる。 zaki-hmkc.hatenablog.com ただし、Docker Composeについては公式で配…

[Oracle Cloud] 無料枠のA1.FlexのコンピュートインスタンスにDockerインストール (Ubuntu/Oracle Linux)

少し前に比べると、最大で4CPUs・RAM24GBまで無料で使用できるA1.Flexのコンピュートインスタンス(VM)を作成しやすくなったのでお試し。 結論から言うとVMのイメージはUbuntuであれば問題なし。 Oracle Linuxの場合はデフォルトの7.9より8の方が手間は無い。…

Debian11(Bullseye)でRootless Dockerインストールしてコンテナをデプロイ

Debian10では依存パッケージのバージョンが古くてインストールできなかったルートレスDocker、先々週リリースされたDebian11ではパッケージバージョンが新しくなって全て要件を満たしていたので試してみた。 docs.docker.com Deiban10だとうまくいかないパタ…

[Ansible / Podman] もうこのぉ、venvを使った実行環境は終わりだ (Ansible RunnerとAnsible Builderお試し)

トキメk…じゃなくてAnsible RunnerやAnsible Builderの話で、Ansibleとコンテナ環境の話題がとても盛り上がってるところに乗り遅れつつある*1ので、マイペースに動作確認してみた作業ログ。 コンテナの中身寄り情報あり。 環境 Ansible Builder インストー…

[Docker Compose] cpu / memory / ログサイズの制限を指定する

元ネタはこちら。 zaki-hmkc.hatenablog.com zaki-hmkc.hatenablog.com 元ネタではDocker(dockerコマンド)単体で制限設定を行ってましたが、同じことをDocker Compose (v3)で指定する場合はどうするかについて。 docs.docker.com cpu / memory deploy/resour…

[NetBox] 最新のfeatureブランチでDockerビルドしてコンテナとしてデプロイする

NetBoxの機能でまだリリースはされていないけどfeatureブランチには実装済みの新しい機能を試してみたい場合、feature版のコンテナイメージは用意されてないためOS上に素で構築する必要があるが、それよりはfeature版コンテナイメージを手元でビルドした方が…

Rootless modeのDockerをUbuntu 20.04へインストール (Debian 10では依存パッケージ不足で失敗)

DockerのRootless modeのセットアップを試してみた。 設定すればデフォルトではroot権限が必要なDockerを一般ユーザーでも使えるモードで動作させることができる。 現在はDockerをパッケージインストールすると、Rootless mode用のセットアップスクリプトも…

[Docker / Docker Compose] コンテナのIPアドレスを固定する方法

以前「コンテナ若葉マーク」で「コンテナ環境ではIPアドレスじゃなくてコンテナ名を使って通信しろ!(IPアドレスは意識するな!)」みたいなことを話したりしたことあったんですが、何らかの理由でコンテナ名(ホスト名)でなくIPアドレスを使って(イコールIPア…

[NetBox] NetBox(v2.10.3 → v2.10.4)とnetbox-docker(0.27.0 → 1.0.2)のアップグレード

Docker ComposeでデプロイしたNetBoxをバージョンアップする。 基本的には「動作中NetBoxを停止 -> Composeファイルを(リポジトリごと)更新 -> 新バージョンNetBoxを起動」で良いが、更新内容によっては追加手順があるのでここ最近のバージョンから最新安定…

[ssh / docker / kubectl] ローカルの標準出力をリモートの標準入力にする

sshやdocker exec、kubectl execで、シェルを起動せずに直接コマンドを実行できるが、sshなどを実行するローカルの標準出力をリモートホストやコンテナの標準入力として処理する方法について。 SSHの場合 前提。 ローカルのhostnameはcloud-devで、リモート…

[Python] datetime.strptime()を使った文字列からdatetimeオブジェクトへの変換とタイムゾーン

Pythonでは日付を表す文字列からdatetime型のオブジェクトへの変換にstrptime()を使用できる。 例えば'Thu Feb 11 17:01:34 2021'という文字列があった場合、'%a %b %d %H:%M:%S %Y'というフォーマット文字列を用意することでオブジェクトにできる。 なお、A…

Docker版NetBoxを導入してIPアドレス管理台帳.xlsxに別れを告げる

オンプレ環境だと必ずと言っていいほど存在する「エクセルのIPアドレス管理台帳」、なんやかやで私も自宅の環境でもスプレッドシート(Excelではない笑)に記入しつつ運用してました。 で、業務で最近NetBoxというアドレス管理などを行うIPAMツールを使うこと…

Arista EOSのcEOS-labコンテナでSNMPサーバー(SNMPエージェント)

とある作業でSNMP接続を試したかったけど手持ちの環境でSNMPサーバーが無かったので、Arista EOSのコンテナ版cEOS-labでSNMPサーバーを有効にして外部SNMPマネージャー(snmpwalk)から値を取得できるようにしてみた。 Linuxサーバーに入れても良かったけど、…

Windows 10 homeにDocker Desktopを入れてみたらすっごい簡単にセットアップできたという話

インストール前にHyper-VやらWSLやらを有効にする必要ナシ。 Dockerのインストーラが自動でやってくれます。 そしてhomeエディションもサクッとインストールできます。 qiita.com というのをDockerアドベントカレンダーとしてQiitaに書きました。 なるほどね…

GitLab CE on Docker Compose (HTTPS + Container Registry + Runner)でSSH設定してなかったので追加

GitLab CE on Docker(Docker Compose)のSSH設定について。 SSHといっても、GitLabサーバーのメンテナンスに使うのでなく、GitリポジトリのSSHアクセスに使用するためのもの。(シェルログインには使用しない) ベースはこちら zaki-hmkc.hatenablog.com docs.g…

[Ansible] Arista EOSのcEOS-labコンテナにAnsibleでeos_factsするまでいろいろハマったこと

一昨日つくったcEOS-labコンテナにAnsibleのeosモジュール使ってアクセスする。 使うモジュールはひとまず情報収集のeos_factsを使用。 zaki-hmkc.hatenablog.com ネットワーク初心者の自分にはハマりポイントが大量にあったので色々と備忘録。 ポイントは「…

[Ansible] Connectionプラグインを使ってDockerコンテナを対象に接続・処理する

2021.05.23、docker_container_execモジュールについて追記 Ansibleの処理対象としてDockerコンテナを指定する。 sshを使用しないので、接続先(=コンテナ内)でsshサーバーは不要だけど、コンテナ内にPythonは必要。 お試しということで、Python:3イメージを…

Arista EOSの検証用コンテナcEOS-labで"Cli"コマンドを叩けるか試した

cEOS-labコンテナを動かしてその先でいろいろ動かしてみるはずが、動かすかどうかでつまづいてしまったのでその作業ログを。 ※ Cliコマンドとか分かってないので、動かし方を分かってない。 ※ コンテナ自体は動いているので、Cli以外の方法で触るものだろう…

[Docker]コンテナ実行時にlog-optsでログサイズ上限とローテート数を設定してホストのストレージが溢れないようにする

コンテナのお作法として、アプリのログはstdoutへ出力することで、Dockerのロギング機能に任せることができる。 ただし、Dockerのデフォルトだとサイズ制限は無いので、上限設定を行っていないとホストのストレージを使い切ってしまうので注意。 逆に言うと…

[Docker] コンテナで動かすプロセスのCPU使用率を--cpusで、メモリ使用量を--memoryで制限する

あくまで一例です。 開発環境とかで一時的に使うのでなく、サービスとして永続的に使う場合は、ホストのリソースを食い尽くさないように制限をかけると良い。 CPU 制限無し 制限あり メモリ 制限無し 追記: 2GB仕様について 制限あり その他のオプション 参…

制限ネットワーク環境のRHEL7でproxy経由でサブスクリプション登録とDockerインストール

実は自宅環境でRHEL入れるの初めてなんですよ…。 記事内のproxyは172.29.0.11:8080 zaki-hmkc.hatenablog.com RHEL7の取得とインストール後のサブスクリプション登録 イメージの取得 OSインストール サブスクリプションの登録 proxy設定 システムの登録 利用…

[Docker] コンテナでSquidを動かしてproxyサーバーを構築

2年近くproxyすらないネットに繋がらない環境にいて、少し前にようやくパブリッククラウドの自由ないんたーねっとを手に入れたぜうっひょーと思ったら、今度はついにproxy環境での検証をすることになったので、自宅ラボにも似たような構成作れないか、Squid…

[Ansible / Docker] Dockerコンテナ版Ansible(2.8.13)を作ってみる (練習)

CI/CDや、Ansibleのインストールが難しいオフライン環境とかで使えるかな、と思って、試しに作ってみた。 Ansibleバージョン ベースイメージ 失敗作 Dockerfile build push Docker Hub イメージのpush お試し実行 ansible pingモジュール実行 修正版 Dockerf…

[Kubernetes / kind] kindを使ってDocker上にクラスタを高速作成し、MetalLBも併用してクラスタ横断した通信お試し

DockerでKubernetesを動かす。 何をいってるかわからないかもしれないけど、コンテナをK8sノードとして動かすものです。 下の図のような感じで、Kubernetesノードとして動作するコンテナがDockerで動く、というものです。 (なので、podがこのコンテナの中で…

「コンテナ若葉マーク」でDockerのネットワークについて登壇した振り返り

登壇レポートが続きますが、「コンテナ若葉マーク」で15分のロング枠としては初めて、初心者向けの勉強会として発足したばかりの会で登壇したので、振り返りをしてみます。 tech-lab.connpass.com 発表スライド 参加のきっかけ 日程について 集客 資料の準備…

GitLab CE/GitLab Runner on Docker環境でexecutorもDockerなCI/CD環境

"GitLab CE/GitLab Runner" on Docker環境で、CI/CDの実行環境であるexecutorもDockerで動かす。 これまでの流れ docker executor 設定の追加 CI/CDの実行(Host is unreachable) 既存設定を削除 docker networkの設定 docker network指定でRunnerの再作成 jo…

既存のGitLab CE on Dockerに、Runnerコンテナも追加してCI/CD環境をつくる

Dockerで動かしてるGitLab CEにGitLab Runnerもコンテナで追加して、GitLab CE本体とRunnerを同じDocker上(別コンテナ)で動かして、初めてのGitLab Runnerお試し。 構成の概要としてはこんな感じ。 お題 Runnerコンテナの起動 Runnerの設定 GitLab CEでトー…

パラメタの多いdocker runをdocker-composeを使ってYAMLで定義する(GitLab CE編)

docker runのパラメタが多いと設定変更して再実行しづらかったりメンテが大変なので、YAMLに書いてdocker-composeで実行すれば色々と便利です。 ということで、お題として以下のGitLab CEを起動するdocker runをdocker-composeで動かせるようにしてみます。 …

GitLab CEのDockerコンテナイメージを使って、ローカルにGitLab CEをサクッとたてる(https + Container Registry込み)

DockerHubで公開されているGitLab CEのコンテナイメージを使えば、簡単にGitLabをローカルに立てることができます。 GitLab CEをDockerで動かす GitLab CEでコンテナレジストリを動かす はそれぞれ先人たちのブログ記事とか見つかる(ありがとうございます!)…

CentOS 7.7 1908へ --vm-driver=none を使ってMinikubeをベアメタルインストールする

起動が早くて便利なので、Minikubeを入れているホストOSであるCentOSに(VMを作らずに)直接インストールする手順。 ちなみに以前はSELinuxをPermissiveにしたり、--extra-config=kubelet.cgroup-driver=systemdをオプション追加したり、libcgroup-toolsパッケ…