Dockerコンテナの時間をHostの時間と合わせる

投稿者: Anonymous Docker for Macを使ってUbuntu 16.10を実行しているのですが、ゲスト側の時間とホスト側の時間が一致しません どうすれば合わせられるのでしょうか? macOSの時間 $ date 2017年 3月14日 火曜日 22時30分27秒 JST Ubuntuの時間 $ date 2017年 3月 14日 火曜日 12:50:06 UTC まず、macOSでdateを実行し、その2~3秒後にubuntuで実行しました そのため数秒のズレはあると思いますが、これほど大きくはならないと思います 解決 本家ドキュメントのKnown issues に載っている問題です。 NTPサーバに接続できない場合、休止状態から戻った時に時刻が同期されないとのことです。 解決策として2つ挙げられていて、 1. 休止状態から復帰した時に docker run –rm –privileged alpine hwclock -s を実行して手動で同期させる 2. 低優先度のNTPサーバとしてlocalclockを参照させる 一時的に使用する分には1.の方法で十分かもですが、常時Dockerを動作させる場合は2.の方がいいかと思います。 回答者: Anonymous

docker toolboxのエラーについて

投稿者: Anonymous windows10にdocker toolboxをインストールしたのですが、 Docker Quickstart Terminalを起動した時にエラーがでてしまいます。 Running pre-create checks… Error with pre-create check: “This computer doesn’t have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory” Looks like something went wrong in step Checking if machine default exists… Press any key to continue… BIOS設定画面では、Virtualizationが有効になっているのですが、 上記エラーが発生しています。 また、VirtualChecker2というツールを使用して、CPUが「AMD-v」に対応しているか確認しましたが、対応しているようです。 数回、docker toolboxを再インストールしましたが、結果は同じです。 助けてください。。。 どうかよろしくお願いします。 OS: windows10 home CPU…(Continue Reading)

VSCodeでDockerコンテナにリモート接続した際、codeコマンドが動作しない

投稿者: Anonymous リモートサーバー内のDockerコンテナに、ローカルPCのVSCodeで接続(Remote – SSHとRemote – containersのExtensionsを使用)しておりますが、VSCodeのターミナル(Bash)上で $ code <file name> と打ち込んでも bash: code: command not found というエラーメッセージが出力されて、VSCode上でファイルの編集をすることが出来ません。 VSCodeのエクスプローラー(Ctrl+Shift+E)から、ファイルをクリックすれば編集画面は表示されるのですが、codeコマンドで呼び出すことは出来ないものでしょうか? また、コマンドパレット(Ctrl+Shift+P)を呼び出してから、Shell Command: Install ‘code’ command in PATHで検索しても一致するコマンドは見つかりませんでした。 実行環境は下記の通りです: ローカルPC:Windows10 Pro リモート先のホストPC:Ubuntu 18.04.3 LTS リモート先のホストPC内のDockerコンテナ:Ubuntu 18.04.3 LTS ご回答、何卒宜しくお願い致します。 解決 リモート先のコンテナ内で、codeコマンドを使ってVSCodeを呼び出すことができたので自己回答します。 ホーム直下をよく探してみると、 $HOME/.vscode-server/bin/<directory with a hash-like name>/bin/ にcodeがあったので、これにPATHを通すとうまくいきました。 ちなみに、<directory with a hash-like name>とはハッシュっぽい名前のディレクトリで、 これはコンテナにリモート接続時に自動的にランダムでつけられるディレクトリです。 毎回違うので、各自で参照してみて下さい。 一応Pathの通し方は下記の通りです。 export PATH="$PATH:$HOME/.vscode-server/bin/<directory…(Continue Reading)

Nuxt.jsとSpringBootによるSPA・RestApiの設計について

投稿者: Anonymous 現在、Nuxt.jsとSpringBootによるSPA・RestApiのWebアプリケーションの開発を考えております。 ローカルでの開発では ・フロントエンドをdevサーバ(3000)で起動 ・バックエンドをSpringBoot(8080)で起動 として、別々のサーバで動かせばうまくいくとは思いますが、 本番での運用方法がいまいちわかっていません。 SpringBootのプロジェクトにSPAのファイル群を jarファイルにまとめて、dockerで動かすのが理想ですが、 こんなことできるのでしょうか。 特に不明な点は、 Nuxt.jsを使用してフロントエンド開発を行った場合、 devサーバを使わずに、静的リソースとして扱えるのかどうか です。 よろしくお願い致します。 【開発環境】 Java 8 Spring Boot 2.1.1 gradle 4.10.2 nuxt 2.3.4 @nuxtjs/axios 5.3.6 解決 自己解決しました。 下記でwebpackのプロジェクトを作成し、 $ vue init webpack プロジェクト名 npmビルドすることで、distフォルダにindex.htmlとstaticフォルダが作成されました。 $ npm run build このindex.htmlとstaticフォルダをspring bootのsrcmainresourcesに格納することで spring bootを起動した際に、indexページを表示してくれました。 dockerでもうまくいきました。 回答者: Anonymous

行頭にある >&2 の意味(docker-composeによるコンテナ起動順制御に使用)

投稿者: Anonymous シェルスクリプトについて質問があります。 下記のコード内で2箇所の >&2 という記述がありますがどういう意味でしょうか。 #!/bin/bash set -e host=”$1″ shift cmd=”[email protected]” until psql -h “$host” -U “postgres” -c ‘l’; do >&2 echo “Postgres is unavailable – sleeping” sleep 1 done >&2 echo “Postgres is up – executing command” exec $cmd 引用元: http://docs.docker.jp/compose/startup-order.html $ ls >&2 という形で ls の標準出力を標準エラー出力にリダイレクトするというような理解はあります。 自分の現状の認識は psql -h “$host” -U “postgres”…(Continue Reading)

シェルスクリプトで特定のコマンドを無視する方法はないですか?

投稿者: Anonymous AWS EC2 用のセットアップシェルスクリプトを dockerfile に移植しようと思い FROM ubuntu:16.04 COPY setup.sh /root/ RUN bash /root/setup.sh という Dockerfile を描いて docker build -t test -f Dockerfile . で実行してみたのですが /root/setup.sh: 8: /root/setup.sh: sudo: not found と言われます sudo を消せばいいだけなのですが できれば setup ファイルそのままの状態で流用できれば EC2用とdocker用で2重管理しなくてすみます また sudo をインストールすれば解決しそうですが docker 内ではどうせ root でしか作業しないので sudo コマンド自体を無視するようにできないでしょうか alias sudo=” みたいなことを描いてみたんですがやはり sudo: command not found…(Continue Reading)

macから、vagrantのcentosをproxyにして、vagrant上に作ったdockerのコンテナにSSHしたい

投稿者: Anonymous お世話になります dockerを試して見たく、さらに、SSHプロキシを試してみたく、いま調べております そこで以下のサイトを参考にしました MacからSSH接続可能なDockerコンテナを作る。 – Less is Best 現状ですが、vagrantのCentOS内で、Dockerfileを使ってbuildするところで、最後にこけています sudo docker build -t “shiratsu/docker_sshd” . 2015/01/27 02:21:48 Unknown filesystem type on /dev/mapper/docker-253:0-17040161-9e50380ebda65fe7f1061951d8a9448ef2fda5807957caf1faef9c72e68b4774 色々調べてはいるものの、解決はせずでして。。。 ちなみに、dockerの情報は以下です [[email protected] ~]$ sudo docker info Containers: 1 Images: 5 Storage Driver: devicemapper Pool Name: docker-253:0-17040161-pool Pool Blocksize: 65.54 kB Data file: /var/lib/docker/devicemapper/devicemapper/data Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata Data Space Used: 89.19…(Continue Reading)

Railsコンテナにおける docker-compose up がエラーとなり起動できない

投稿者: Anonymous 開発環境にDockerを導入してRailsの開発を行いたいのですが、docker-compose up が正常に動作せず、どうすれば動作させることができるかの解決策や、原因として考えられることだけでもご教示いただければと思い、質問させていただきます。 実現したいこと 開発環境にDockerを使用し、Ruby on Railsの開発を行いたい。 そのために、既存のRailsアプリをDockerにて起動し、ブラウザのlocalhostで見れるようにしたい。(既存のRailsアプリはWSLにて動作していました。この度、WSLでなくDockerで開発しようと思い立ちました) 下記のQiita記事を参考に実施しています。 既存のRailsアプリにDockerを導入する手順 丁寧すぎるDocker-composeによるrails5 + MySQL on Dockerの環境構築(Docker for Mac) 使用環境 ツール:Docker Quickstart Terminal VM:VirtualBox(Linux2.6/ 3.x/ 4.X(64bit)) ホストOS:Windows10 Home 現在の状態 1.Docker Quickstart Terminalを起動し、Dockerコマンドを打ち、動作することは確認しています。 2.Dockerfileとdocker-compose.ymlは以下のように記述し、docker-compose build –no-cache は正常に完了できました。その後、docker-compose up を実行したところでエラーが出ています。 <エラーメッセージ> web:Could not locate Gemfile or .bundle/ directory と表示後、    exited with code 10と表示されました。 3.webのみエラーが出ている様子です。調査中ですが、調べる時間があまりに長時間かかっているため、質問させていただいた次第です。(DBコンテナは起動しているようです) ※ホスト側のRailsアプリのディレクトリ C:mydevmyfavrest-app ※ターミナル起動時のカレントディレクトリ…(Continue Reading)

docker logs を tail -f したい

投稿者: Anonymous docker run -d で daemon として run した container に対して、その実行過程を観察したいと思いました。 tail -f のように、端末をバインドして変更があればそれが追記されていくようなことができたらいいなと思いました。しかし、 docker logs は基本的にすぐさまその実行が終了してしまいます。 質問 docker logs の出力を、tail -f のように継続的に観測したいです。これはどうやったら実現できますか? 解決 docker logsの-fオプション(「follow log output」)ではいかがでしょうか? 回答者: Anonymous

Dockerで起動後にすぐ終了してしまうコンテナに対してコマンドを実行したい

投稿者: Anonymous docker start 後にすぐ終了してしまうコンテナに対して、特定のファイルを削除するコマンドを実行したいです。 https://hub.docker.com/_/redmine/ こちらのDockerイメージを使ってRedmineを動かしていたのですが、PC再起動後に再び docker start したらすぐに終了してしまうようになりました。 どうも、 /usr/src/redmine/tmp/pids/server.pid が居残ってるのが問題みたいなので削除しようと思うのですが、その方法が分かりません。 何かいい方法はないでしょうか? 解決 標題とは異なる対応ですが、問題が解決しましたので記載致します。 データを引っ張りだして、新しいコンテナに入れる形で復旧致しました。 docker export を使用して対象コンテナをエクスポート エクスポートしたtarを展開して、redmineの必要なデータを取り出す 新しいredmineコンテナを作成 また同じ過ちを繰り返さないように、 /docker-entrypoint.sh に rm -f /usr/src/redmine/tmp/pids/server.pid を追記 取り出したファイルを新しいコンテナにコピーする コピーしたファイルの所有者を redmine:redmine に変更 コンテナを再起動 また、私がコピーしたファイルは以下です /usr/src/redmine/sqlite/redmine.db /usr/src/redmine/files/* (空でしたが…) /usr/src/redmine/config/configuration.yml /usr/src/redmine/public/themes/使っていたテーマ 回答者: Anonymous

Dockerのコンテナ内で稼働するMiddlemanのプレビューが更新されない

投稿者: user26045 macOS 10.12.6 / Docker CE 17.23.0 / Middleman 4.2.1 / Chrome 63.0.3239.84 (64bit) Middleman の開発環境を Docker 内に移行しようとしています。Docker 内で起動したプレビューサーバのサイトをホストマシンのウェブブラウザに表示することはできるのですが、サイトのソースを編集してもプレビューが更新されません。ライブリロードも反映されず、ブラウザの更新ボタンを手動でクリックしても変更が反映されません。プレビューサーバを停止し、再起動すると更新されます。 プレビューまでの手順 Dockerfile FROM ruby:2.4.3 RUN gem install execjs:2.7.0 therubyracer:0.12.3 middleman:4.2.1 middleman-autoprefixer:2.8.0 middleman-livereload:3.4.6 CMD /bin/bash 仮に middleman:4.2.1-soj としてビルド。 docker build -t middleman:4.2.1-soj . コンテナ起動 ポート 4567, 35729 を同じ番号で公開。作業用にカレントディレクトリをバインドマウントし、サイトのソース編集などはホストマシンから行います。 docker run -it –rm -p 4567:4567 -p 35729:35729…(Continue Reading)

ECR にある docker image の取得方法

投稿者: Anonymous mlflow sagemaker というコマンドで AWS ECR に自動生成された docker image に変更を加えたいです https://qiita.com/3utama/items/b19e2239edb6996a735f こちらを参考にしてとりあえずローカルにイメージを取得しようとしたのですがうまくいきません 実行した手順は docker pull ************.dkr.ecr.ap-northeast-1.amazonaws.com/【イメージ名】:latest を実行したところ(イメージ ARN は AWS コンソールからのコピペなので間違ってないはず) Error response from daemon: pull access denied. … repository does not exist or may require ‘docker login’: denied: Your Authorization Token has expired. Please run ‘aws ecr get-login –no-include-email’ to fetch a new…(Continue Reading)

docker-compose run web bundle exec rails db:migrateエラー

投稿者: Anonymous 質問です。 DockerでRails + MySQLの開発環境をつくる手順 Quickstart: Compose and Rails を見てここでも色々教えていただき GCPでもdocker-composeできましたが docker-compose run web rake db:create docker-compose run web bin/rails g scaffold User name:string docker-compose run web bundle exec rails db:migrate の最後をしたところ Creating network “root_default” with the default driver Creating root_db_1 … Creating root_db_1 … done rake aborted! Mysql2::Error: Authentication plugin ‘caching_sha2_password’ cannot be…(Continue Reading)

docker start時はCMDしか呼ばれない?

投稿者: Anonymous DockerfileでCMDとENTRYPOINTの両方が指定されていると、docker runする際はCMDに指定したコマンドは直接実行されずENTRYPOINTの引数として渡されると思います。 しかし、docker startの際は、CMDに記載したコマンドのみが実行されているように見えます。これはなぜでしょうか? docker start時はCMDが実行される仕様なのでしょうか? それとも、CMDとENTRYPOINTの記述順序によるのでしょうか?(上記の例ではCMDが後に記述されています) そもそもdocker startが電源オンのように解釈していることが間違っているのでしょうか?(docker stopしたところから再開、みたいなイメージが正しいんでしょうか?) また、上記仕様が記載されているページをご存知であればご紹介いただけるとありがたいです。 解決 docker run == docker create + docker start https://stackoverflow.com/questions/34782678/difference-between-running-and-starting-a-docker-container 上記のページ (英語ですが、、)などを参照すると、 docker run は docker create と docker start を一気にやるためのコマンドだと書いてあります。 コンテナが start 時に実行されるコマンドは、コンテナ作成時に決定されている。 docker create のオプションや例を見ていると、コンテナはその作成時に、何のコマンドを実行するコンテナなのかが確定している様子です。 https://docs.docker.com/engine/reference/commandline/create/#options 例: $ docker create -t -i fedora bash 6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752 $ docker start -a -i…(Continue Reading)

Not Foundとなりページが開きません

投稿者: Anonymous Windows10で、Docker Desktop for Windowsを使っていますが、以下のようなコマンド入力して、 docker run -p 80:80 -v /Users/micchicchi/docker/www:/var/www/html –link mysql:mysql –name php -d php:custom http://localhost/hogehoge とかやっても、以下のようなエラーとなります。。。 Not Found The requested URL /hogehoge was not found on this server. http://localhost/ とかやると、以下のようなメッセージが表示されます。。 Forbidden You don’t have permission to access / on this server. ちなみに、以下のようなコマンドですと、 docker run –detach –publish 80:80 –name webserver nginx “Welcome…(Continue Reading)

docker for windowsでhello-worldが無反応

投稿者: Anonymous Dockerを勉強してみようと思い、 Get started with Docker for Windows を参考にDockerをインストールしました。 docker version docker info まではコマンドが実行でき、Version情報等が取得できました。 しかし、 docker run hello-world を実行したところ、応答がなく、何も進まない状態です。 エラーが出るでもなく、何も起きないので困りました。 考えられる原因を教えてください。 環境は OS:Windows10 Pro バージョン1703 Docker Version:17.06.0-ce です。Hyper-Vは有効にしています。 よろしくお願いします。 解決 Microsoft のトラブルシューティングに載っている以下のコマンドを実行すると直りました。 Invoke-WebRequest https://aka.ms/Debug-ContainerHost.ps1 -UseBasicParsing | Invoke-Expression ユーザ名は伏字にしていますが、スクリプトの実行結果を載せておきます。 PS C:Users*****> Invoke-WebRequest https://aka.ms/Debug-ContainerHost.ps1 -UseBasicParsing | Invoke-Expression Checking for common problems Describing Windows Version and Prerequisites…(Continue Reading)

DockerHubにあるDockerイメージのDockerfileを確認したい

投稿者: Anonymous 背景 DockerHubのpython:latestイメージを使おうとしています。 https://hub.docker.com/_/python このイメージについて、 * OSは何か? * pythonコマンド以外にどんなコマンドを使えるか などを知りたいです。 そのため、このイメージがどんなDockerfileでビルドされているかを確認したいです。 どこで確認すればよいでしょうか? tagsのページから遷移した以下のページには、Dockerfileのような情報が記載されていました. RUNコマンドは記載されていませんでしたが、これはDockerfileに相当する情報でしょうか? https://hub.docker.com/layers/python/library/python/latest/images/sha256-23d760aa4a5f2d46b12f439d113a8ffe5bf520c555b9c3aedb4765f9c8943024 解決 Description タブを開くと “Supported tags and respective Dockerfile links” にタグの一覧があり、 それぞれが Dockerfile にリンクされています。 latest については 現時点では Debian 10 (buster) となるようです。 回答者: Anonymous

あるDockerイメージは異なる環境で動作しますか?

投稿者: Anonymous Dockerについて勉強中です。 たとえば、あるDockerイメージ"foo"がUbuntu20.04上(CPUはIntel/AMD、つまり「普通のパソコン」)で動作したとします。 このDockerイメージは別の異なる環境のDocker実行環境で動作しますか? 例: RaspberryPi上のRaspberryPiOS CentOS8(CPUはIntel/AMD、つまり「普通のパソコン」) MacOS Windows10(CPUはIntel/AMD、つまり「普通のパソコン」) OSが同じor異なる場合、CPUのアーキテクチャが同じor異なる場合、…などで動作に差異が生じるのでしょうか。もしくはDocker実行環境がこれらの違いを全部吸収するのでしょうか。 このとき、Dockerイメージ"foo"の制作者は、他の実行環境における動作について特に気を払っていないものとします。 解決 Dockerイメージのプログラムはホストのカーネル上で動くと認識しています。 ライブラリは動いても、システムコールが異なれば動かないと思います。 CPUのアーキテクチャが違えば動かない。 ※機械語に互換がないと思います。 CPUのアーキテクチャが同じでもカーネルが違えば動かないと思います。 ※実際に試したわけではありませんし、私もDockerについて勉強中の身です。以上は言い切っていることがありますが、全部推測です。 【追記】Win10のPCで動かしてみました。 RaspberryPi上のRaspberryPiOS RaspberryPiOSはARMなのでCPUのアーキテクチャが異なるため動きません。 CentOS8(CPUはIntel/AMD、つまり「普通のパソコン」) kernelがLinuxなので動くと思います。 MacOS kernelはUnix系ですが、Linuxでないので動かないと思います。 【追記】コンテナエンジンがkernel内蔵ならMacOSのPCでも動くと思いますが、CPUアーキテクチャが異なると動きません。 ※CPUも変わるようなので、どちらにしても動かないと思います。 Windows10(CPUはIntel/AMD、つまり「普通のパソコン」) OSがWindowsの場合は動かないと思います。 WSL上であれば動く可能性があります。WSL2ならたぶん動くでしょう。 【追記】Docker Desktopをインストールすると動くと思います。Linuxカーネルを内蔵しています。WSL2を使用する方法(※)もあります。 ※設定項目に「Use the WSL 2 based engine」があります。 回答者: Anonymous

Montar un volumen local en un contenedor usando Dockerfile?

publicado por: Anonymous Estoy intentando hacer que un directorio local sea linkado dentro del contenedor, explico porque. La idea es tener un container con el S.O corriendo pero que el proyecto web se encuentre alojado en una carpeta local. Se que utilizando el comando: -v /path/on/host:/path/in/container en el Docker run es posible. Pero mi intención…(Continue Reading)

windows10の環境で、dockerによるPython 3.6のイメージを取得できない

投稿者: Anonymous Windows PowerShellを使いdocker上にPython 3.6のイメージを取得するコマンドを入力しましたが、うまくできません。 処理方法について、ご教示願います。 PS C:Windowssystem32> docker pull python:3.6 3.6: Pulling from library/python no matching manifest for windows/amd64 10.0.18362 in the manifest list entries 解決 エラーメッセージの通りで、python:3.6 イメージには windows/amd64 用のものが現状用意されていないため利用できません。 https://hub.docker.com/layers/python/library/python/3.6/images/sha256-379cc4388f3b84f0299139f65c5b4e12db1bfe6d76478e25d462580d20216c52 https://github.com/docker-library/python 3.7 や 3.8 なら windows/amd64 用が用意されているのでそちらを使うか、3.6 の windows/amd64 版イメージを作って欲しいという issue を立てたり pull request したりすることになります。 回答者: Anonymous

docker ps で STATUS が UP になる条件

投稿者: Anonymous docker-compose で Rails のコンテナを立てたいのですが docker-compose の管理リポジトリと Rails のリポジトリを別で管理していて 人によって Gemfile のパスが固定できないので https://docs.docker.com/compose/rails/ のように ADD ./Gemfile ができません なのでとりあえず ruby 関連のミドルウェアだけインストールした状態でコンテナを起動して bundle install や rails の起動はコンテナに入ってから行うことにしたいのですが ベースにした ubuntu のコンテナが UP のままになってくれずコンテナに入ることができません 同時にたてた MySQL の方は何もしなくても UP になってくれるので 初めから用意されてるテンプレートイメージの方に違いがあるとしか思えないのですが どういう条件で UP になり続けるのでしょうか d59848956e1a rails “/bin/bash” 5 seconds ago Restarting (0) 1 second ago rails 565825adef28 mysql “docker-entrypoint.s…”…(Continue Reading)

CoreOS で起動していた Docker コンテナがいつの間にか停止している

投稿者: Anonymous コンテナを停止したつもり無いのですが、勝手に終了していました。docker psで表示されず、docker ps -a でみると、数時間前に停止してしまっているような状況です。ログ等がどこにあるかも分からず、どうしたものか苦戦しております。 何を見ると Docker のコンテナの挙動が分かるものでしょうか? 環境は CoreOS on GCE です。 解決 coreosであればsudo journalctl -u dockerなどでdockerのログが見れるはずです。 またコンテナが停止したのは多分CoreOSの自動アップデートによって インスタンスが再起動した為と考えられます。 ※stableが2015/02/04、alphaが2015/02/05あたりにアップデートされており、GCE上のImageもそれぞれ新しいバージョンが作成されています。 fleetなどを利用してコンテナが自動再起動するように設定すれば自動的に再起動するようになるはずです。 回答者: Anonymous

No compiler found, expected minor version match with ghc-8.8.4

投稿者: Anonymous haskell – Docker Hub に Dockerize an application using stack: FROM haskell:8 RUN stack install pandoc pandoc-citeproc ENTRYPOINT ["pandoc"] とあるので、これはDockerfileに記載するんだなと推測して、Dockerfileを作り上記コードを記述しました。 そして下記を実行するとエラーになりました。 % docker build . -t hoge Sending build context to Docker daemon 5.12kB Step 1/3 : FROM haskell:8 —> 28d6a90e41e2 Step 2/3 : RUN stack install pandoc pandoc-citeproc —> Running in 8ad45a57c741…(Continue Reading)

docker image を定義する際に、サーバーのユーザーは分けるべき?

投稿者: Anonymous たとえば、サーバープログラムを、マシンにインストールする場合には、基本的に user を分けると思います。 mysql をインストールしているならば、そのデータディレクトリは mysql:mysql の owner であるようにすると思っています。 これは、セキュリティであったり、運用的に、サーバーが触るファイルをきっちりと分割することで、もろもろのトラブルを回避できるからやるのだと理解しています。 docker でとあるサーバーのイメージを自分で作る場合を考えます。この場合でもそのサーバー専用に adduser して、プログラム自体の実行はそのユーザーでやるし、また対応するデータディレクトリもその新しく定義したユーザーが所有者として動作するように設定を行うべきなのでしょうか? というのも、 docker container はその仕組み上、メインで動くプロセスはただそのサーバープログラムのみになる、と考えられます。ただそのプログラムのみが動くのであるならば、わざわざユーザーを分離するような設定は行うメリットはあるのだろうか、とふと疑問に思ったので質問しています。 解決 利用するアプリケーションは、想定するユーザ/グループがありますが、想定通りユーザを作るのが良いです。Apacheのwww-userやOracleのdbaグループです。 セキュリティの観点と言うより、アプリケーションが前提としている条件(ユーザやグループ、ポート、パス)を合わせてあげることで、変更しなければならない設定を減らせるので管理対象を少なくできることが主な要因だと思います。 セキュリティの観点でユーザを分けることを検討するのであれば、docker 1.5から導入された、read-onlyコンテナを考えた方が良いと思います。volume以外のパスへの書き込みは一切できなくなるので、意図しない修正がかなり絞り込まれます。 下記のように–read-onlyでvolume以外の書き込みはできません。 $ docker run -it -v test:/mnt –rm –read-only alpine sh / # touch /mnt/aaa / # touch /tmp/bbb touch: /tmp/bbb: Read-only file system / # 回答者: Anonymous

docker-composeで実行したときdocker.sockから情報を取得できない

投稿者: Anonymous github.com/moby/moby/clientのEventsメソッドを使ったDockerのイベントを取得するソフトウェアを作成しています。 以下のdockerコマンドを実行した場合はDockerのイベントを取得できますが、docker-composeで指定した場合にError response from daemon: {“message”:”page not found”}というエラーがでて失敗します。 docker run -d -v /var/run/docker.sock:/var/run/docker.sock -e API_VERSION=1.37 docker-app /app/binary docker-compose.yml version: “3.5” services: app: build: . command: /app/binary volumes: – /var/run/docker.sock:/var/run/docker.sock env_file: – docker.env なぜdocker-composeで実行したときだけエラーがでるのでしょうか。またどのように修正すればdocker-composeでもdockerコマンドを実行したときと同じ状況を再現できるのでしょうか。 解決 docker.env内のAPI_VERSION=”1.37″をAPI_VERSION=1.37に変えると動きました。 env_fileを使うときは”を使えないようです。 回答者: Anonymous

npm, browsefiryを利用し複数の外部ライブラリを1つにビルドする運用をしたいが、フロント側でクラス名のnot definedエラーが出力されてしまう

投稿者: Anonymous Webサービスを個人的に開発しております。 npm, browserifyを利用し、フロントエンドで利用するいくつかの外部ライブラリを1つにビルドし、 HTMLにはjsファイル1行書けば済むように運用したいのですがエラーが出てしまい、解決できずに悩んでおります。 LaravelMix+webpackを用いて同じことをしようとそちらでも試行錯誤したのですが後述する同様のエラーで解決に至らずといった経緯です。 環境 Docker Desktop Docker 19.03 Laravel 7.12 npm 6.14.5 browserify 16.5.1 主なエラー内容 Uncaught ReferenceError: muuri is not defined ソースファイル package.json “private”: true, “scripts”: { “dev”: “npm run development”, “development”: “cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js –progress –hide-modules –config=node_modules/laravel-mix/setup/webpack.config.js”, “watch”: “npm run development — –watch”, “watch-poll”: “npm run watch — –watch-poll”, “hot”:…(Continue Reading)

docker の mount されたファイルの所有者の解決

投稿者: Anonymous docker は -v によってファイル・ディレクトリをマウントすることができますが、それを行った際のファイルの所有者の解決はどのように行われますか? というのも、 docker のホスト側でもコンテナ側でもユーザーの設定は行い得ると考えていて、当然、外と中のユーザー設定は違いますが、このとき docker はどうこれを解決するのでしょうか。 解決 linux のファイルシステム(ext4)では、ファイルシステム上のそれぞれのファイルの情報として、ユーザーID, グループID を保持する。 linux は、ファイル情報として記載されているユーザーID, グループID に対して、そのIDがOS上に登録されていなければ、その数字をそのまま所有者・グループとして表示する (e.g. ls -al) つまり、 OS とファイルシステムは割と直交している。ので mount して host と container でファイルシステムを共有したからといって、(ユーザー周りで)特に取り立てて行わなければならないことはない。 回答者: Anonymous

ubuntu イメージを docker-compose で起動して UP 状態にしたい

投稿者: Anonymous Dockerfiles/rails/Dockerfile FROM ubuntu:14.04 docker-compose.yml rails: build: Dockerfiles/rails/ image: rails container_name: rails ports: – “3003:3000” links: – mysql networks: rails_net: ipv4_address: 172.20.1.2 restart: always を作成して docker-compose up -d を実行したところ docker ps で STATUS が UP にならずに Restarting (1) 29 seconds ago が繰り返されます UP 状態にして中に docker exec -it <container id> /bin/bash で入りたいのですがどうすればいいでしょうか ubuntu:14.04 を mysql:5.6…(Continue Reading)

docker runでCMDとして与えた引数のスペースが正しく処理されない

投稿者: Anonymous 以下の様なDockerfileとdocker-entrypoint.shを作成してビルドしました。 Dockerfile FROM debian:latest COPY docker-entrypoint.sh /entrypoint.sh ENTRYPOINT [“/entrypoint.sh”] docker-entrypoint.sh #!/bin/sh echo ‘[email protected] = ‘[email protected] echo ‘$# = ‘$# OPT=`getopt -o “” -l “hoge:,huga:” — “[email protected]”` echo ‘$OPT = ‘$OPT やりたいこととしては、 docker run myimage –hoge=”ho ge” –huga=”hu ga” のようにオプションを指定できるようにし、entrypoint.shで処理できるようにしたいのです。 理想ではgetoptでオプションが整形され–hoge ‘ho ge’ –huga ‘hu ga’のような出力がされるはずなのですが、結果は [email protected] = –hoge=ho ge –huga=hu ga $# =…(Continue Reading)

¿Como se cambia la ip a la que se enlaza un contenedor docker?

publicado por: Anonymous Cree un contenedor docker con una base de datos en un equipo con la IP (host) 10.1.1.100, el contenedor tiene una aplicación web así que se le direcciona el puerto 80 del contenedor al puerto 80 de la ip. docker run –name contenedor -d -p 10.1.1.100:80:80 something/something Todo funcionó correctamente hasta que…(Continue Reading)