Docker的机制是什么?

摘要

提供有关Docker机制理解、解决Docker特有问题的辅助信息和案例研究等的项目清单形式的信息。

这篇文章是为技术初学者准备的。

这篇文章并没有系统地记录Docker的前因后果。

在Docker容器中无法使用localectl。

    • localectlは、「systemd」というものによって起動されたシステムでのみ使えるコマンドである -> 参考文献

そして、Dockerではsystemdは使えない->参考文献1,参考文献2

よって、Dockerでlocalectlは使えない
しかし、特別なbuild方法を指定することでdockerコンテナでもsystemdを使う方法がある(上の参考文献1,2を参照)
systemdについての記事-> https://qiita.com/bluesDD/items/eaf14408d635ffd55a18

在非Linux操作系统上,Docker的volume在主机操作系统上不存在。

参考文献 1: 参见引用文献1
参考文献 2: 参见引用文献2

    • 使用するPC(ホストOS)がLinuxの場合、問題はない. しかし、PCがWindowsとMacの場合、上の問題が発生する.

 

    • 一言で言うと、そもそもDockerというソフトはLinux上でしか動くことが出来ない不思議なソフトウェアである

 

    • そのためWindowsやMacで使用するにはまずLinux仮想マシンを設置する必要がある。そのLinux仮想マシンの作成はWindowsやMacにDockerをインストールしたときに、インストーラーが裏で自動的にやってくれる。

 

    • 従って、dockerの操作は、あたかもMacのターミナルやwindowsのコマンドプロンプトでやってるように見えるが、実はそれは見せかけで、Macのターミナルに打ち込まれたdockerコマンドは一度Linux仮想マシンに渡されて、それをdockerに渡している。

 

    • 従って、dockerコマンドで作成したボリュームも例に漏れず、Linux仮想マシンのディレクトリに保存される。作成したボリュームの表示ディレクトリはホストOSのディレクトリとは全く関係ない

 

    ホストOSからvolumeにアクセスしたければ、Macの場合は以下のコマンドを実行すればよい:
nc -U ~/Library/Containers/com.docker.docker/Data/debug-shell.sock 
    Windowsの場合は、エクスプローラーの窓に \\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes と入力するとアクセスできる(参考文献)

在Docker容器中的CentOS上,无法执行localectl命令。

 

广告
将在 10 秒后关闭
bannerAds