未分類

ACジャパンとはどのような団体なのですか

ACジャパン(公益社団法人ACジャパン)は、日本の広告業界が共同で運営する公共広告機構であり、社会貢献を目的とした公共広告の制作・発信を行う団体です。1971年に「公共広告機構(Public Advertising Organization, PAO)」として設立され、2009年に現在の「ACジャパン(Advertising Council Japan)」へと改称されました。

主な活動内容

  1. 公共広告の制作・放映
    • 社会課題(環境問題、福祉、教育、防災など)に関する広告を制作し、テレビ・ラジオ・新聞・インターネットなどを通じて発信。
    • 企業や団体の協賛を受けずに、広告業界の協力によって制作・配信される。
  2. 啓発キャンペーンの展開
    • 年ごとにテーマを決めて、全国キャンペーン(全国規模の啓発活動)を実施。
    • 例えば、いじめ防止・人権啓発・交通安全・災害対策などがテーマとして取り上げられる。
  3. 災害時・緊急時の特別対応
    • 東日本大震災(2011年)などの災害時に、通常のCMが自粛された際に代替としてACジャパンの広告が大量に放映され、「ぽぽぽぽーん」のフレーズで知られる「あいさつの魔法。」などが話題になった。
  4. 企業・団体の支援なしで運営
    • 営利目的の広告とは異なり、企業の広告宣伝費ではなく、広告業界の賛助金個人の寄付によって運営されている。

特徴と影響力

  • 広告倫理の向上
    • 営利目的ではなく社会的メッセージを発信するため、企業広告とは異なる独自の立ち位置を持つ。
  • 視聴者の認知度が高い
    • ACジャパンの広告は、「AC」というサウンドロゴ(ジングル)とともに流れることが多く、特にテレビCMでの影響力が大きい。
  • 批判や議論を呼ぶことも
    • 震災後に大量に放映されたことで「ACジャパンのCMばかり流れている」と話題になったり、過去には「内容が説教的」「表現が過激すぎる」との批判を受けたこともある。

最近の主なCMのテーマ(例)

  • 2023年:「認め合うココロ」(多様性と包摂)
  • 2022年:「やさしさがめぐる世界」(思いやりと助け合い)
  • 2021年:「『正しさ』を考えよう」(価値観の押し付けを見直す)

まとめ

ACジャパンは、企業広告とは異なり、社会貢献を目的とした公共広告を制作・発信する団体です。広告業界全体が支援する形で運営され、営利目的ではなく、社会的メッセージを伝えることに特化している点が特徴です。そのため、時折大きな話題になることもありますが、基本的には「社会全体にとって良い影響を与える」ことを目的としています。

ACジャパンのビジネスモデルを簡単に説明して下さい

ACジャパン(公益社団法人ACジャパン)のビジネスモデルは、以下のような構造になっています。

1. 収入源

ACジャパンは、企業広告のような営利活動を行わず、以下の方法で資金を調達しています。

  • 広告業界からの賛助金
    • 広告代理店、放送局、新聞社、出版社などの広告関連企業が、団体の運営資金として会費を支払う。
  • 個人や企業からの寄付
    • 一般の個人や企業が、ACジャパンの活動を支援するために寄付を行う。

2. 広告制作と放映

  • 広告の企画・制作
    • 社会的に重要なテーマ(例:環境問題、人権、福祉、教育、防災など)を選び、広告を制作。
  • 広告枠の提供(メディアの協力)
    • テレビ局・ラジオ局・新聞社・雑誌社・Webメディアなどが、余った広告枠(空き枠)を無償または低コストで提供。

3. 放送・配信

  • テレビ・ラジオ・新聞・雑誌・インターネットで広告を発信
    • 通常時:広告枠が空いたタイミングで流れる。
    • 災害時・企業広告の自粛期間:大量に放送されることがある(例:東日本大震災後の「ぽぽぽぽーん」)。

4. 影響と社会貢献

  • 啓発活動を通じて社会貢献
    • 企業広告のように利益を目的とせず、公共性の高いメッセージを発信。
  • 広告業界のCSR(社会的責任)活動の一環
    • 広告業界全体が社会に貢献するための共同プロジェクトとして機能。

まとめ

ACジャパンは、広告業界の賛助金・寄付によって運営され、空き広告枠を活用して社会的メッセージを発信するモデルになっています。これにより、広告業界全体のCSR(企業の社会的責任)活動の一環として機能しつつ、公共広告の役割を果たしています。

1の民放テレビ局の不祥事(?)によるスポンサー離れに対して、広告業界協賛のACジャパンのCMを流すというのは、利益相反にはならないのですか?

フジテレビの不祥事によるスポンサー離れが発生し、その結果としてACジャパンのCMが放送されるという状況は、一見すると広告業界全体の「救済措置」にも見えるため、**利益相反(conflict of interest, COI)**の問題があるのではないかという指摘は一定の合理性があります。

1. 仕組み上の利益相反の可能性

ACジャパンのCMは、基本的に通常の広告枠が埋まらなかった場合に放送されます。このため、スポンサーが離れたことで生じた広告枠の空きをACジャパンが埋める構造になることは事実です。
広告業界の支援によって運営されている団体(ACジャパン)が、広告収入が減った放送局を間接的に支えることになるため、利益相反の懸念が生じます。

2. 直接的な金銭の流れはない

ただし、ACジャパン自体は放送局に広告料を支払っていないため、「広告業界がフジテレビを資金的に救済している」という直接的な利益相反は発生しません。むしろ、広告業界として「社会的な公共広告を流す」という役割を果たしているという建前があります。
しかし、以下のような問題が指摘されることがあります:

  • スポンサー離れの影響をACジャパンが吸収する形になるため、視聴者から「フジテレビがスポンサーを失ってもCMが流れ続ける」という誤解を招く。
  • 広告枠の価値が下がるリスクがある(広告枠がACジャパンのCMばかりになると、視聴者の印象が悪くなるため、さらなるスポンサー離れを招く可能性)。
  • 本来ならばスポンサー離れを受けて経営改革が必要なのに、ACジャパンのCMが流れることで問題が緩和され、改善が遅れる可能性がある。

3. フジテレビ側のリスク

フジテレビにとっては、スポンサーが撤退した結果としてACジャパンのCMが流れる状況は、以下のようなリスクがあります。

  • 広告収入が減少するため、経営上のマイナス要因になる(ACジャパンのCMが増えてもフジテレビに直接の広告収入は入らない)。
  • 視聴者の不満が高まる可能性がある(「またACか」という批判が発生しやすい)。
  • スポンサーが戻りにくくなる(ACジャパンのCMが流れすぎると、視聴者が「この枠は広告主がつかない」と認識してしまい、新規スポンサーがつきにくくなる)。

4. 広告業界にとってのメリット・デメリット

広告業界としては、ACジャパンを通じて公共広告を流すことで「社会貢献」をアピールできる一方で、フジテレビの広告枠がACジャパンCMで埋まることで、通常の広告主が撤退しやすくなるという側面もあります。このため、広告業界全体としても、長期的にはマイナスの影響を受ける可能性があります。

結論

フジテレビの不祥事によるスポンサー離れが発生し、その結果としてACジャパンのCMが増える状況は、構造的には利益相反の懸念があるものの、直接的に広告業界がフジテレビを金銭的に支援しているわけではないため、厳密な意味での利益相反とは言えないというのが実情です。
しかし、視聴者やスポンサーからの印象としては「業界ぐるみの救済措置」と捉えられかねないため、広告業界としての透明性や説明責任が求められる問題であると言えます。

2025,江端さんの技術メモ

OBSの録画時にCPU負荷が増大し、操作が困難になる場合、以下の設定を調整することで負荷を軽減できます。


1. 録画のエンコーダを変更

設定 → 出力 → 録画 → エンコーダ

  • 「ハードウェアエンコード (NVENC, QuickSync, AMF)」を使用する
    • NVIDIANVENC (H.264)
    • Intel CPU内蔵GPUQuickSync H.264
    • AMD GPUAMF
    • ハードウェアエンコードがない場合x264のプリセットを変更(後述)

      私の場合、エンコードするハードウェアがにないからスキップ


2. 録画の品質を下げる

設定 → 出力 → 録画

  • 録画品質:低品質、ファイルサイズ優先
  • 録画フォーマット: mp4(またはflv)
  • エンコーダ設定: CBR (固定ビットレート)
    • ビットレート: 1500~2500kbps(画質が多少荒くなるが負荷が下がる)
    • キーフレーム間隔: 2秒
    • CPUプリセット: 「ultrafast」(x264使用時のみ)

      録画の方には、上記メニューに該当するものがなかったので、こちらもスキップ

3. 解像度とフレームレートを下げる

設定 → 映像

    • 基本 (キャンバス) 解像度: 1280×720
    • 出力 (スケーリング) 解像度: 640×360 または 854×480
    • FPS: 30 FPS または 24 FPS

      出力は最低値に、FPSは手動で10fps位まで落した→ 動作が軽くなって、マウス操作ができるようになった

2025,江端さんの技術メモ

OBSでブラウザ全体が表示されず、一部が大きく拡大されてしまう場合、以下の点を確認してください。

1. ソースのプロパティを確認

  • OBSの「ソース」リストでブラウザをキャプチャしているソースを右クリック → 「変換」→「画面にフィット」 を選択
  • これで画面全体がOBSのプレビューに収まるか確認

    # 私は、ここで解決したので、以下省略

2025,江端さんの忘備録

多くの大人が、子どもに対して『もっと勉強しておけばよかった」と語るそうですね。

Many adults tell their children, “I wish I had studied harder.”

あれ、嘘ですから、ティーンエージャの皆さんは信じないように。

That's a lie, so please don't believe it, teenagers.

少なくとも、私は「もっと勉強しておけばよかった」と思ったことは、1秒も1mmもありません。

At the very least, I have not regretted for even a second or a millimeter that I should have studied more.

だって、勉強なんて何時だって何処だってできるからです。

Because you can study anytime, anywhere.

「できない」と言う人は、勉強というが「年単位」の時間がなければできないと思い込んでいるのかもしれませんが、勉強なんぞ、「トイレにいる時間」だってできます。

People who say they can't do it may think they need years of study, but you can study even when you're in the toilet.

で、実際に、私は、"それ"やっています。

And actually, I am doing “it.”

-----

ただ、「もっといい"学歴"を取得しとくべきだった」ということであれば、話は別です。

However, if you think you should have an academic background, that's a different story.

私は、学歴が、実社会でほぼ無意味であることは『断言』できますが、ドアノッカー(最初の入口)という強烈な武器になる、ということも、また『断言』できます。

I can “affirm” that your academic background is almost meaningless in the real world, but I can also “affirm” that it can be a powerful weapon as a door-knocker (the first point of entry).

いわゆる『シグナリング理論』という奴です。

It's called “signaling theory”.

『もはや高学歴、大企業就職の時代ではない』というセリフは、戦後80年間近く、ずっと言われ続けてきたことになります。

-----

私は、『今の時点で、人生をかけて"やる"ということがなければ、勉強でもしておけば?』といいます。

I say, “If you don't have anything to devote your life to now, why not study something?”

勉強とは、もし「ドアノッカー」としての役割がないとしても、やっておいて損になる、ということが少ないイベントです。

Even if studying doesn't have the role of a “door knocker,” there is no harm in doing it.

ただ、一般的に、国家がティーンに強いてくる勉強の内容は、努力と苦痛を強いるものである、というのは事実です。

However, the kind of study that the state forces teenagers to do generally involves a lot of hard work and pain.

そう考えると、『勉強で、努力と苦痛を感じることが「ない」または「少ない」人が有利』ですね ―― 特にティーンエイジャという勉強が義務化されているフェーズにおいては。

When you think about it like that, “those who don't feel much effort or pain when studying have an advantage” - especially during the phase when studying is compulsory for teenagers.

-----

さて、私は、大学入試共通テストの「情報」の過去問(昨日実施)を、解答見ないで、同じ時間で、自力で問いてみようと思います。

Now, I will try to answer the past questions for the “Information” section of the Common University Entrance Examination (which was held yesterday) on my own, without looking at the answers, in the same amount of time.

『現役のITエンジニア(私)が、ティーンエイジャ(の平均点)に負けた』ということになれば、それもちゃんと報告しますね。

If it turns out that a working IT engineer (me) was beaten by a teenager (with an average score)', I'll report that too.

私のこの報告で、ティーンエイジャや高等学校、予備校、そして文部科学省が衝撃を受けるようなことになったら ―― それはそれで面白いと思う。

It would be interesting if my report caused a stir among teenagers, high schools, cram schools, and the Ministry of Education, Culture, Sports, Science and Technology.

2025,江端さんの技術メモ

VSCodeでCSVファイルの文字エンコーディングを Shift_JIS(SJIS) にする方法はいくつかあります。


① VSCodeの「文字コードの変更」機能を使う

  1. CSVファイルを開く
  2. 画面の右下に エンコーディング(例: UTF-8, UTF-16など) が表示されているのでクリック
  3. 「エンコーディングの変更」 を選択
  4. 「Shift_JIS」または「Japanese (Shift_JIS)」を選択
  5. 「エンコードされた内容を保存」 をクリックし、Shift_JIS形式で保存

2025,江端さんの技術メモ

VSCodeからCSVファイルをExcelで開く方法

VSCodeから直接 Excel を起動してCSVファイルを開く方法はいくつかあります。


① ターミナルからExcelを起動する(Windows)

方法 1: start コマンドを使用

VSCodeのターミナル(PowerShell または コマンドプロンプト)で以下を実行

start excel output.csv
  • output.csv は開きたいCSVファイルの名前
  • これでExcelが起動し、CSVファイルが開かれる

2025,江端さんの忘備録

最近、蒙古タンメン中本を再開して、幸せを感じながら食事をしています。

I have been eating at Mongolian Tanmen Nakamoto, which has recently reopened, and I feel happy.

私は、『北極ラーメンは、大盛りにせずに、ライスを付けることで、舌を休ませながら、楽しんで食べられる』ということに、最近、気がつきました。

I recently realized that I can enjoy eating Arctic Ramen without going for the extra large and adding rice, which gives your tongue a break.

高級コース料理は、もちろん美味しいとは思うのですが、私は「同程度の幸せを感じられるなら、"安い方"がいい」という人間です。

I think high-class set meals are delicious, of course, but I think, “If I can feel the same level of happiness, I'd rather have the cheaper option.”

これは、こちらのコラムに記載している

This is similar to the point made in this column.

『毎日の納豆ご飯ともやし炒めを「我慢する」 ―― のではなく、毎日の納豆御飯ともやし炒めを、心から「おいしい」と思える、自己暗示の能力こそが、研究員には必要とされているのではないかと思うのです』

"'Rather than “enduring” the daily natto rice and fried bean sprouts, I think researchers need the ability to self-suggest that they can truly enjoy the daily natto rice and fried bean sprouts."

と類似の主旨です。

(↑クリックでコラムに飛びます)

(Click to go to the column)

贅沢をしなければ、リタイア後もなんとかやっていけるかと思います。

If I don't live extravagantly, I think I'll be able to get by after I retire.

-----

以前、親戚の人に、無理矢理「ベンツ」という車に、無理矢理乗せられたことがあります。

A relative once forced me to get into a car called a “Benz.”

『乗り心地がいいでしょう?』とか言われましたが、正直、私、気分が悪くなりました(本当)。

I was told, “Isn't the ride comfortable?” but honestly, I felt sick (really).

「ベンツ」という車は、社内が静かで、屋外とは別空間の静寂性があり、そして加減速もスムーズで、シーツもゆったりしていて ―― だからこそ『気持ち悪かった』。

The Mercedes-Benz was quiet inside and calmer than outside. The acceleration and deceleration were smooth, and the seats were spacious—that's why it was “weird.”

私、機械の駆動系の動きを体で感じられない車が気持ち悪かったし、屋外と車内が別の空間として分断されている状況が気持ち悪かったし、加減速の運動方程式を想起できない運動性能が気持ち悪かったのです。

I felt sick at the thought of a car, and I couldn't feel the movement of the drive train with my body. I felt ill at the idea of a situation where the inside and outside of the car were divided as separate spaces. I felt sick at the thought of a car with performance that I couldn't recall the equations of motion for acceleration and deceleration.

いえ、それらの全てを否定するのではなく、だからこそ、高級車にはそれに応じた性能と品質があるのは理解しているのですが、「制御と運動方程式を実感できない移動体への乗車に、不快を感じる」のです。

No, I don't deny all of that, and that's why I understand that luxury cars have the performance and quality to match. However, I feel uncomfortable in a vehicle where I can't feel the control and motion equations.

まあ、簡単に言えば「私は"育ちが悪い"」で、いいと思う。

Well, to put it simply, I think it's OK to say, “I was brought up badly.”

多分、私も「ベンツ」とか「ジャガー」とか「センチュリー」とかに乗り慣れていれば、そういうこともない、と思うのですが、なにしろ、そういう経験がないものですから、こればかりはしょうがないです。

Perhaps if I were used to driving a Mercedes, Jaguar or Century, I wouldn't have this problem, but since I don't have any experience driving these kinds of cars, there's nothing I can do about it.

私も、「揺れないで高速移動するJR新幹線」や「横浜ランドマークタワーの超高速エレベータ」には、乗るたびに感動しています。

I am also impressed whenever I ride the “bullet train” or the “super-fast elevator” at the Yokohama Landmark Tower.

だから、「ベンツ」を気持ち悪いと思うのは、単に"慣れ"の問題であろうと推認しています。

Therefore, I suspect that people find “Benz” cars so weird because they are familiar with them.

-----

まあ、このように私の人生は安い人生ですが、安いなりにいいこともある、という一例に・・・なっているのか?

My life is cheap like this, but I think it is an example of the good things about cheap things. Right? 

未分類

Docker for WindowsDocker Desktop の違いについて説明します。


1. Docker for Windows

  • かつての名称
    • 「Docker for Windows」は、DockerがWindows環境向けに提供していた公式のインストールパッケージの旧称。
    • Windows上でネイティブにDockerを実行するためのツールとして提供されていた。
    • Hyper-V を利用してLinuxコンテナを動作させる方式を採用していた。
  • 現在は「Docker Desktop」に統合
    • 2020年頃まで「Docker for Windows」という名称が使われていたが、その後「Docker Desktop」に統一された。
    • 公式ドキュメントやインストーラでも「Docker for Windows」という表現は使われなくなった。

2. Docker Desktop

  • 現在の正式名称
    • Windows環境とmacOS環境向けに提供されているDockerのGUI管理ツールを含む公式パッケージ。
    • WSL2バックエンドやHyper-Vを利用してDockerを動作させる。
  • 主な特徴
    • GUIを備えた管理ツール があり、コンテナの管理やリソース制限の設定が容易。
    • WSL2統合 により、Windows Subsystem for Linux (WSL2) 上で軽量なDocker環境を提供。
    • マルチプラットフォーム対応(Windows/macOS)。
    • 企業向けに有償化(2021年以降)。

3. 主な違い

項目 Docker for Windows Docker Desktop
提供時期 旧称(2020年頃まで) 現在の正式名称
対象OS Windows のみ Windows / macOS
バックエンド Hyper-V Hyper-V / WSL2
GUI管理機能 なし(CLIのみ) あり(Docker Desktopアプリ)
有償化 無料 商用利用時は有償(一定条件あり)

結論

  • 「Docker for Windows」「Docker Desktop」 に統合され、現在では「Docker Desktop」として提供されている。
  • そのため、「Docker for Windows」は事実上「Docker Desktopの過去の名称」 という扱い。
  • 現在は Docker Desktop を使うのが一般的 だが、商用利用の場合は有償化されているため、代替手段(WSL2 + Docker Engine、Podman など)を検討するケースもある。

2025,江端さんの忘備録

昨年末から、ノドがいがらっぽい状態が続いています。

Since the end of last year, I've had a scratchy throat.

普通に寝ていても、寒さで目が覚めますし、年末からずっと、ぼんやりとした体調不全が続いています。

Even when I'm sleeping, I usually wake up with a cold, and I've been feeling vaguely unwell since the end of the year.

「老化」という言葉は、上位概念すぎて分かりにくいですが、これを「自律コントロール機能の段階的喪失」と置き替ええると、ぴったり当てはまる感じがします。

The word “aging” is too broad to be easily understood, but if I replace it with “gradual loss of autonomous control functions,” it seems to fit perfectly.

『視力が壊れる』、『体内保湿機能が壊れる』、『体温調整機能が壊れる』。まあ、こんな感じですね。

'Your eyesight will be ruined,' 'your body's moisture retention function will be ruined,' and 'your body temperature regulation function will be ruined.' Well, something like that.

自律機能が壊れていくのであれば、外部デバイスで補っていくしかありません。

If the autonomous functions break down, the only way to compensate is with external devices.

これが、老眼鏡であり、加湿器であり、そして、暖房器具です。

These are reading glasses, a humidifier, and a heater.

どの世代であっても、自分の老化を実感します。

-----

ただ、私が思うにこれらのデバイスは制御が"雑"です。

However, I believe the controls on these devices are “sloppy.”

知らない人が多いかもしれませんが、視力は毎日変動します。同じ眼鏡でも、文字が見える時と見えない時があります。

Although many people may not know this, your eyesight changes every day. Even with the same glasses, there are times when you can see the letters and times when you can't.

また、加湿器はフェードバック機能がいいかげんで、ここ数日で部屋をびしょ濡れにされました(書類の印刷が水に浸った状態で見えない)。

Also, the humidifier has a poor feedback function, and it has made the room soaking wet in the past few days (the documents I printed are soaked in water and unreadable).

エアコンは、暑く眠れなくなったり、寒くて眠れなくなったりします。まあ、これは私の睡眠中の体温や体調の変化のせいだとは思いますが。

Air conditioning can make it too hot or too cold to sleep. I think this is due to changes in my body temperature and physical condition while I sleep.

-----

今後は、天井に設置したカメラとかベッドに仕込まれた温度・湿度センサが、私の体表温度とかを計測して、パーソナルAIと連動して、自動的に制御を行う、というような方向に向かうかもしれません。

In the future, cameras installed in the ceiling and temperature/humidity sensors built into the bed may measure my body temperature and other data and automatically control the room in conjunction with the personal AI.

ただなぁ、この実現は難しいだろうな、とは思います。

However, I think it will be challenging to achieve this.

学習にかかる時間も長いだろうし、被験者からのフィードバックの測定が恐しく難しくて、被験者の負荷も大きそう。

It will take a long time to learn, and measuring the feedback from the test subjects will be extremely difficult. It seems that the test subjects will also have a lot of work.

市場規模は大きいですが(全人口の35%以上で、今後も増加は確定)、システム構築や販売コストも高そうです。

The market is large (over 35% of the total population, and it is confident to continue to grow), but it also seems that the cost of system construction and sales will be high.

-----

ちなみに、部屋をベチャベチャにされましたけど、加湿器のおかげで「ノド」の調子はいいです。

By the way, I made the room very humid, and thanks to the humidifier, my throat is in good condition.

これ受験生必須のアイテムではないかと思います。

I think this is a must-have item for students preparing for exams.

とくに、カゼやインフルエンザ対策としては、最強デバイスの部類にはいるのではないか、と思いました。

It was one of the most powerful devices for preventing colds and influenza.

受験生の皆さんとそのご家族の皆さんは、購入をご検討下さい。

All prospective students and their families are encouraged to consider purchasing this device.

2025,江端さんの技術メモ

Windows 11 に WSL2 をインストールし、Ubuntu をデフォルトOSに設定し、Docker をインストールする手順を説明します。

1. 背景

Docker for Windowsが、有償化されて、(現場が)困ったことになっています。

ChatGPTにDocker for Windows と Docker Desktop の違いについて教えてもらいました

で、これを回避する方法として、「WSLのLinuxを利用して、Dockerを利用する方法」がある、という話を聞き『あ、盲点』と思い、さっそく環境構築をノートPCでやってみました(本番PCでコケるのは怖かったので)。


2. WSL2 のインストール

2.1. WSL の有効化

管理者権限で PowerShell または コマンドプロンプトを開き、以下のコマンドを実行します。

wsl --install

これにより、WSL2 とともに Ubuntu が自動でインストールされます。

WSL のバージョンを確認するには

wsl --list --verbose

もし、既に WSL1 になっている場合、以下のコマンドで WSL2 に変更できます:

wsl --set-version Ubuntu 2


3. Ubuntu をデフォルトOSに設定

インストールされている WSL のディストリビューションを確認:

wsl --list --verbose
デフォルトを Ubuntu にする:
wsl --set-default Ubuntu

4. Docker のインストール

WSL2 上の Ubuntu に Docker をインストールします。

4.1. パッケージの更新更新

sudo apt update && sudo apt upgrade -y

4.2. Docker のインストール

sudo apt install -y docker.io

4.3. Docker のサービスを開始

sudo systemctl enable --now docker

4.4. Docker グループへのユーザー追加

sudo usermod -aG docker $USER

適用するには、一度ログアウトするか、以下を実行:

newgrp docker

4.5. Docker の動作確認

docker run hello-world

「Hello from Docker!」と表示されれば成功です。


5. Docker Compose のインストール

sudo apt install -y docker-compose

6. Docker デーモンを WSL2 内で実行

通常、Windows 上で Docker Desktop を使う方法もありますが、WSL2 内で直接 Docker を動かしたい場合は systemd を有効にします。

6.1. WSL2 で systemd を有効化

sudo nano /etc/wsl.conf

以下の内容を追加:

[boot] systemd=true

保存して WSL を再起動:

wsl --shutdown

再度 WSL を起動して systemctl が使えることを確認:

systemctl list-units --type=service

6.2. Docker の自動起動

sudo systemctl enable --now docker

これで、WSL2 + Ubuntu + Docker の環境構築が完了しました。

7. Docker for Windowsのコンテナイメージをtarで固めて展開する

これは、以下を参考にして下さい。

Dockerコンテナのイメージをセーブして先方に送る方法

$ sudo docker load < 20240828_shajyo.tar

のあたりから続けます。

これをwslで実行すると、docker imageができます。

8. ちょっと変なことが起っている話

ところで、この段階で、ちょっと不思議なことが起こりました。

docker for windowsを起動すると、WSL内のdocker imageの名称が変わります(理由不明で、変なのですが、動くなら、まあ構いません)。

で、それだけでなく、docker imagesで、Docker for windowsのイメージが全部登場してきます。

なんだか良く分かりませんが、これが出てくるのであれば、「Docker for Windowsのコンテナイメージをtarで固めて展開する」をサボれるかもしれません(誰か確認したら教えて下さい)。

で、あとは、Docker for Windowsで作成した時と、同じディレクトリに移動して、

docker-compose restart

をすると、無事に動き出しました。

9. 総括

なんだか良く分かりませんが、Docker for Windowsを使っている環境であれば、それを残した状態で、この作業すると、随分手を抜けるかもしれません

移行した後に、Docker for Windowsをアンインストールすれば良いでしょう。

お試しあれ。

言うまでもありませんが、無保証です。


「ちょっと変なことが起っている話」の理由

Docker for Windows を起動すると、WSL 内で動作している Docker イメージの内容が変化する可能性があります。以下の理由が考えられます。


1. Docker for Windows は WSL 2 をデフォルトで使用

Docker for Windows(Docker Desktop)は、デフォルトで WSL 2 ベースのエンジン を使用します。
これにより、WSL 2 で管理されている Docker のデーモン(dockerd)が Docker Desktop の管理下に入る ため、起動時に設定や状態が変更されることがあります。


2. Docker デーモンの変更

Docker for Windows を起動すると、WSL 内の Docker の設定が次のように変わる可能性があります。

  1. Docker デーモンが変わる
    • もともと wsl -d Ubuntu などで WSL 2 内の dockerd を起動していた場合、Docker for Windows を起動すると Docker Desktop が管理するデーモンに切り替わる
    • これにより、ローカルの Docker デーモンが停止 する可能性がある。
  2. デフォルトのデータストアが変更
    • Docker for Windows を起動すると、デフォルトの docker データストアの場所が C:\ProgramData\DockerDesktop\ に変更されることがある。
    • それまで ~/.docker/var/lib/docker に保存されていたイメージやコンテナが正しく認識されなくなる場合がある。

3. ネットワークやストレージの影響

Docker Desktop は Windows 側のネットワーク設定やストレージマウントを変更するため、WSL 側の Docker コンテナに影響を与えることがあります。

  • ネットワークの影響
    • docker0 ブリッジの再設定や、NAT の適用によって WSL 内の Docker コンテナの通信方法が変わることがある。
    • WSL の IP アドレスが変化し、WSL 側で設定していたネットワーク設定が無効になる可能性がある。
  • ボリュームマウントの影響
    • WSL で /mnt/c のようにマウントしていたボリュームが、Docker Desktop の管理下で //wsl$/Ubuntu 経由でマウントされることがある。
    • これにより、Docker 内で期待していたファイルパスが変わる可能性がある。

4. WSL 2 のデフォルト設定が変更される

Docker for Windows の SettingsResourcesWSL Integration「Enable integration with my default WSL distro」 を有効にすると、
Docker のデフォルトデーモンが WSL 2 の docker-desktop ディストリビューションを経由 するように変更されます。

これにより、Docker Desktop を起動すると、docker images の一覧が変わることがあります。


5. 解決策

もし WSL 内の Docker 環境を変えたくない 場合は、次の方法を試してください。

  1. Docker Desktop を無効化
    • wsl --set-version Ubuntu 1 にして、WSL 2 ではなく WSL 1 を使う(WSL 1 では Docker Desktop 連携がない)。
    • Docker Desktop の WSL Integration 設定を無効化する。
  2. WSL 内で独立した Docker 環境を使う
    • Docker Desktop を使わず、WSL 内で dockerd を手動で起動し、独立した環境を維持する。
    • sudo service docker start で WSL 内で Docker デーモンを起動。
  3. Docker の context を使い分ける
    • docker context コマンドを使用し、Docker Desktop のデーモンと WSL 内のデーモンを使い分ける。
    docker context create wsl-docker --docker "host=unix:///var/run/docker.sock"
    docker context use wsl-docker

結論

Docker for Windows を起動すると、WSL で動作している Docker の デーモン・ネットワーク・ストレージ設定 などが変更され、docker images の結果が変わる可能性がある
WSL 内で独立した Docker 環境を維持したい場合は、Docker Desktop の WSL 統合を無効化するか、docker context を適切に設定すると良い。

ただ、これだと、Docker for Windowsをアンインストールできないんだよなぁ。

さらに検討.....

結局のところ、WSLのDockerから、Docker for Windowsで作ったディレクトリから、docker-compose down して、docker-compose up -d して作り直すのが一番てっとり早かった、というオチでした(私の場合)。