atmoz/sftp コンテナにログインするとハングする問題を解決する

問題 atmoz/sftp イメージを使用して、SFTPサーバを立ち上げた際に、 ログインすると長い間ハングして、放置していたらログインできていた、という事象が発生した 開発者間で、同じ問題が発生していた 考察 色々ググった結果、下記記事にたどり着いた linux - Excessive SFTP CPU usage with chroot enabled when using the official Docker repository - Unix & Linux Stack Exchange Debugging a 12 minute hang after SFTP login どうも コンテナで使用する system の リソース制限の問題のようだったので、 ulimits を設定することで解決した 解決方法 ulimits を設定する ulimits: nproc: 65535 nofile: soft: 26677 hard: 46677 docker compose の sftp コンテナの全体はこんな感じ sftp: platform: linux/x86_64 container_name: $app-sftp image: atmoz/sftp init: true ulimits: nproc: 65535 nofile: soft: 26677 hard: 46677 volumes: - ./.data/sftp/sftpuser:/home/sftpuser - ./misc/sshd_config:/etc/ssh/sshd_config ports: - "2222:22" command: sftpuser:pass:1000:1000:upload restart: always Refs linux - Excessive SFTP CPU usage with chroot enabled when using the official Docker repository - Unix & Linux Stack Exchange

2024-06-24 ·  2024-08-02 · 1 分 · 110 文字

Docker mysql 5.7 イメージで初期化処理に失敗して、ログインできない

発生したエラー MySQL 5.7 のイメージ を使用して単純に起動しても下記エラーが発生して、初期化処理に失敗していた。 厳密には初期化時に上記エラーが出て、初期化SQLまでたどり着かなかった。 初期化処理に失敗すると、mysql userの設定や admin パスワードの設定がうまくできないようで、どうしようもない状態になるようで、、これをなんとかしたかった… /usr/local/bin/docker-entrypoint.sh: line 137: 126 Killed "$@" --skip-networking --default-time-zone=SYSTEM --socket="${SOCKET}" ログをみると怪しい部分は上記のみで、どうもプロセスがいきなり Kill されているように見える 原因はリソースの使いすぎ 以下のようなコメントにたどり着いた 1708115 – Running mysql container in moby-engine results in 100% memory usage Really high memory usage · Issue #579 · docker-library/mysql Thank you so much @evolbug! The bug you found put me on the right tracks. The issue is caused by the ulimit nofile. By default, on arch, the value is too low I guess. running the container with --ulimit nofile=262144:262144 solve the issue and mysql behaves normally. I guess the best way to fix this would be to set this option by default. Should this be documented on docker images prone to this issue? Edit: Actually, it's weird, I think the default limit is way to high, this is what I get by default: > docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn' 1073741816 1073741816 So lowering the value fixes the issue The ulimits does the trick. I added this to my docker-compose and make it work. @vodkhard ulimits: nproc: 65535 nofile: soft: 26677 hard: 46677 ...

2023-08-04 ·  2023-09-24 · 2 分 · 305 文字

Docker Machine(Boot2Docker(Tiny Linux)) 上で docker/gitlab を動かしてみる

sameersbn/gitlab:8.0.4 オンプレミスな GitHub Clone GitLab かなり気持ち悪いロゴ…(なぜこうなった) バージョンUPでこうなったらしい… それはいいとして、 Docker image を利用して、公式に公開されている、docker/gitlab を docker-machine で作成した docker-host(virtual-box) 上で 動かしてみた。 インストール ssh で docker-machine ホストOSへ接続した状態でおこなう docker-machine ssh dev docker pull sameersbn/gitlab:8.0.4 cd ~/works/ git clone https://github.com/sameersbn/docker-gitlab.git cd docker-gitlab # Dockerfile からビルドする場合 # docker build --tag=$USER/gitlab . docker-compose インストール docker コンテナを複数使用するアプリケーションの構成(起動順序や必要リソースなど)をまとめて管理できるのが、 docker-compose clone されたディレクトリに、 docker-compose.yml が存在するので、 docker-compose で起動できる。 # docker-compose ダウンロード cd ~/Downloads wget https://github.com/docker/compose/releases/download/1.4.2/docker-compose-Linux-x86_64 sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose sudo chmod 755 /usr/local/bin/docker-compose # version 確認 docker-compose --version # 以下が表示される # docker-compose version: 1.4.2 GitLab 設定 以下コマンドで SEACRET_KEY を生成する ...

2015-10-10 ·  2015-10-10 · 2 分 · 329 文字

Ubuntu 14.04 上に Docker Machine を インストールする

Docker Machine を試す! docker-machine docker-machine は Docker ホストを管理するツールで、ホストとなる Docker コンテナ起動サーバが、VM や AWS、 Digital Ocean などの ホストへ接続し実行する事で、あたかも local で docker コンテナが動いているかのように振る舞うツール。 Docker コンテナ管理ツールとしても仕様できるみたい。 docker インストール まずは、 dokcer のインストール # Docker install wget -qO- https://get.docker.com/ | sh # version を確認しておく。 docker --version # 以下が表示される # Docker version 1.8.2, build 0a8c2e3 # ユーザーを docker グループに追加 sudo usermod -aG docker $USER docker-machine インストール 続いて、 docker-machine をインストールする。 cd ~/Download wget https://github.com/docker/machine/releases/download/v0.4.1/docker-machine_linux-amd64 sudo mkdir -p /opt/bin sudo mv docker-machine_linux-amd64 /opt/bin/docker-machine sudo chmod +x /opt/bin/docker-machine # docker-machine version 確認 # /opt/bin にパスが通っている事! docker-machine -v # 以下のようにバージョンが表示される # docker-machine version 0.4.1 (e2c88d6) # docker-machin の作成 # docker-machine [--debug] create --driver virtualbox [マシン名] docker-machine --debug create --driver virtualbox dev # エラーがでて以下を実行しろと怒られたので実行。 # sudo /etc/init.d/vboxdrv setup # 再実行時、既に マシンが存在すると怒られるので、以下で削除できる # docker-machine rm dev # docker-machine の一覧表示 docker-machine ls # 以下のような結果が表示される # NAME ACTIVE DRIVER STATE URL SWARM # dev * virtualbox Running tcp://192.168.99.100:2376 # ホストマシンのDocker Remote API のエンドポイントや、certファイルのパスが表示される docker-machine env dev # 以下のような結果が表示される # export DOCKER_TLS_VERIFY="1" # export DOCKER_HOST="tcp://192.168.99.100:2376" # export DOCKER_CERT_PATH="/home/username/.docker/machine/machines/dev" # export DOCKER_MACHINE_NAME="dev" # # Run this command to configure your shell: # # eval "$(docker-machine env dev)" # 指示通り実行 eval "$(docker-machine env dev)" # 上記コマンドで、 `virtual-machine` 上で動くコンテナをあたかもローカルで動いているかのように操作できる。 doker images # REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE # docker/gitlab latest 8e122d458cf4 5 hours ago 654.1 MB # sameersbn/gitlab 8.0.4 e6964ca49453 3 days ago 653.5 MB # sameersbn/redis latest 7bfd2b846d7b 6 weeks ago 196.9 MB # sameersbn/ubuntu 14.04.20150825 2bde99560607 6 weeks ago 194.8 MB # sameersbn/postgresql 9.4-3 6fc4cce07194 9 weeks ago 231.6 MB # 後は docker コマンドで自由に操作するだけ! Tips # ワンライナコマンドオプションの表示 docker-machine config dev # 以下のような結果が表示される # --tlsverify --tlscacert="/home/username/.docker/machine/machines/dev/ca.pem" --tlscert="/home/username/.docker/machine/machines/dev/cert.pem" --tlskey="/home/username/.docker/machine/machines/dev/key.pem" -H=tcp://192.168.99.100:2376% # これを利用して以下でも起動できるらしい # docker $(docker-machine config dev) ps # マシンのストップ docker-machine stop dev # ストップしたマシンのスタート docker-machine start dev # docker machine へ ssh 接続 docker-machine ssh dev # ## . # ## ## ## == # ## ## ## ## ## === # /"""""""""""""""""\___/ === # ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ # \______ o __/ # \ \ __/ # \____\_______/ # _ _ ____ _ _ # | |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __ # | '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__| # | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ | # |_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_| # Boot2Docker version 1.8.2, build master : aba6192 - Thu Sep 10 20:58:17 UTC 2015 # Docker version 1.8.2, build 0a8c2e3 # docker machine へ ssh 経由でコマンド発行 docker-machine ssh dev "hostname && uname -a" # 以下が表示される # dev # Linux dev 4.0.9-boot2docker #1 SMP Thu Sep 10 20:39:20 UTC 2015 x86_64 GNU/Linux 参考 Docker Machine を使って VirtualBox に Dockerホストを立てる

2015-10-10 ·  2015-10-10 · 3 分 · 459 文字

Nuc(D54250WYKH)に CoreOS をインストールし、Docker を触る

Nuc(D54250WYKH)に CoreOS をインストールし、Docker を触る CoreOS インストール ISO イメージダウンロード CoreOS ISO イメージを ここ からダウンロード または、以下コマンドで取得 $ curl -o core-os.iso http://alpha.release.core-os.net/amd64-usr/current/coreos_production_iso_image.iso?__hstc=112362075.27b09ada9633d5c4e4307490970e61ed.1421419603585.1421419603585.1421419603585.1&__hssc=112362075.1.1421419603585&__hsfp=4136096990 USB 起動ディスクの作成 Mac OS からUSB起動ディスク作成を行う場合は、以下コマンドで、ISO イメージを変換 $ hdiutil convert -format UDRW -o out.img coreos_production_iso_image.iso Mac 上の認識デバイスIDを確認 $ diskutil list USB アンマウント $ diskutil unmountDisk /dev/disk2 イメージ書き込み $ sudo dd if=out.img.dmg of=/dev/disk2 bs=1m USB 取り出し $ diskutil eject /dev/disk2 CoreOS を Nuc で起動 USB メモリから起動 insert usb disk. power on F10 連打! 起動した CoreOS の設定 パスワード変更 ...

2015-01-17 ·  2015-01-17 · 2 分 · 396 文字