Dockerメモ

■コンテナ-Dockerホスト間のファイルコピー

コンテナAからコンテナBにファイルをコピーしたい! というタイミングで役立ったコマンド。コンテナA→Dockerホスト→コンテナBのように、一旦Dockerホストを経由している。

ローカルからコンテナへのファイルコピー
 docker cp /root/mobara/testGUI.exe TESTCODE:/app/
コンテナからローカルへのファイルコピー
 docker cp b971302bff98:/app/Docker_testCODE /root/app/

コピーしたいファイルが複数あるときはディレクトリごとのコピーで一発。

ディレクトリごとコピー(ディレクトリは先にmkdirしておくこと)
 docker cp b971302bff98:/app/. /root/app/

■既存のコンテナのimage化周り

docker pushするとき、image名はDockerのユーザー名/image名の構成にしておく必要がある。既にあるimageをpushするために名前変えるところからやるなら以下のようになる。

 docker run -d --name="onecontainer" tetei:tetei 👈まず名前を変えるためにimage(tetei:tetei)から新しいコンテナ(onecontainer)を立てる
 docker commit onecontainer asayamatdocs/one 👈立てたコンテナをもとに新しいimage(mobaratworks/one)を作成
 docker stop onecontainer
 docker rm onecontainer 👈用済みのonecontainerを削除
 docker push asayamatdocs/one:latest 👈asayamatdocs/oneにlatestタグを付けてdocker hubにpush

■pullしたいimageのタグがlatestではなく不明な場合

https://registry.hub.docker.com/v1/repositories/microsoft/<pullしたいimage名>/tags
こんな感じでURLを指定してやると、テキストファイルでタグ一覧が表示される。改行されてないのでたいへん見づらいが、例えば{"layer": "", "name": "10.0.14393.1066"}のような記述で1つのセットとなり、このうち"10.0.14393.1066"の部分がタグにあたる。

■文字コード変更

localectl 👈変更前確認
set-locale LANG=ja_JP.UTF-8
localectl 👈反映確認

■ポート周り

------ポートの使用状態確認、使用しているプロセスのkill
lsof -i:<port番号>
kill -9 <PID>
------Nginxの使用ポート変更
# vi nginx.conf
/listen

■systemctlで怒られたときに確認してるとこ

journalctl -xe
tail /etc/syscon/config.

■ネットワーク周り

-----コンテナのNetwork設定確認
docker container inspect <コンテナ名>
-----Dockerホストで実行するDockerが持つネットワーク確認
docker network ls

■yum install周り

------SSHを使いたいとき
yum -y install openssh-server
------semanageを使いたいとき
yum -y install policycoreutils-python-utils.noarch 

■ValueError: SELinux policy is not managed or store cannot be accessed.

getenforceで現在のSELinuxの状態を確認。Disabledになっていたら
vi /etc/selinux/semanage.confで新規にファイル作って下記をコピペ。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
#       targeted - Targeted processes are protected,
#       mls - Multi Level Security protection.
SELINUXTYPE=targeted
​

※設定の反映はreboot後。




この記事が気に入ったらサポートをしてみませんか?