(O+P)ut

アウトプット



(O+P)ut

Output Log

IT技術-DevOps-Docker

【Docker】プライベートレジストリを最小限の設定で利用する

はじめに ローカル環境にコンテナ用のプライベートレジストリを立ててPush操作の検証を行った際の動作確認メモを記しておきます。 尚、環境としてはdockerインストール済のLinux仮想マシンの上でレジストリを起動しました。 環境情報 RedHat Enterprise Linu…

【Linux】Failed to start Docker Application Container Engineでdocker.serviceが起動しない

事象 DockerEngineの起動に失敗している。 # systemctl status docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: failed (Result: start-limit) …

【Docker/Linux】CAP_NET_RAWを無効にしてコンテナを起動する

はじめに 「CAP_NET_RAW」というケーパビリティがありますが、セキュリティを考慮してコンテナ起動時に削除することができます。 このケーパビリティは「RAWソケットとPACKETソケットの使用を許可」を司っていいて、任意のパケットの送受信を行うために必要…

【Docker】pids-limitをかけたコンテナでプロセス数上限を超過させる

はじめに コンテナ内のプロセス数の上限を制限するdocker runのオプション--pids-limitを利用するハンズオンです。 --pids-limit int Tune container pids limit (set -1 for unlimited)個人利用では指定することはないと思いますが、本番システムのコンテナ…

【Docker】Outside of Dockerでコンテナ内からコンテナを操作する

はじめに コンテナからホスト上のコンテナを操作する「Docker Outdide of Docker」という手法を実際に利用した結果をまとめました。 環境情報 Debian GNU/Linux 9 Docker Version:19.03.5 コンテナ内でDockerコマンドを利用する コンテナ内でDockerコマンド…

【Docker】複数バージョンのイメージを取得する

やりたいこと docker pull IMAGE_NAMEでlatestのタグが付いたイメージが入手できるが、最新のイメージではなく古いイメージを入手したい。 環境情報 Docker Version:19.03.5 やり方 --all-tags=trueを付与する。 $ docker pull --all-tags=true IMAGE_NAME以…

【Docker】デバッグツールを持ったSideCarを別コンテナにつける方法

やりたいこと 例えば以下のようなnetstatコマンドが打てないコンテナにて > docker run -t -i ubuntu root@652f2bab700c:/# netstat bash: netstat: command not found同コマンドが打てるようにする。 環境情報 Docker Version:19.03.5 やり方 接続したいコ…

【Docker】execでコマンド実行するユーザを変更する

やりたいこと 例えば以下のようにdb2コンテナにログインするとrootコマンドとなるが > docker exec -it db2 /bin/bash [root@62959d1446c6 /]#db2inst1ユーザで接続したい。 環境情報 > docker --version Docker version 19.03.5, build 633a0ea やり方 --us…

【Docker】コンテナイメージをアイランド環境に持ち込み起動する

はじめに インターネットに接続していない環境、いわゆるアイランド環境にてコンテナイメージを展開する方法を説明します。流れとしてはインターネットに接続している環境にてイメージをpullし、そのイメージをtarに固めて持ち込んで利用します。 環境情報 D…

【Docker】docker runコマンドのPオプションとpオプションの違い

はじめに dockerコマンドのハンズオンにてnginxはよく利用されますが、コンテナ起動時のオプションにてPオプションやpオプションの付与が求められることがあります。本記事では初学者の方に向けて簡単なハンズオンとp/Pオプションがないと何が困るのかについ…

【Docker】コンテナの停止と削除を同時に行う

やりたいこと 起動中コンテナをdocker stop→docker rmではなく一文で消したい。 やり方 rm -fにて削除する。 > docker rm -f d12efd253e60 d12efd253e60以下、補足です。 補足 停止済みのコンテナを一気に消す方法は以下記事で解説しましたが 今回は起動中の…

【Windows】DockerDesktopをインスール&起動する

はじめに DockerToolboxの後継ツールである「DockerDesktop」をWindows端末にインストールしました。 Hyper-Vを有効化する必要がありますが、本記事ではそれらのインストールと簡単な動作検証を行いました。 環境情報 Windows 10 Enterprise Docker Desktop …

ストレージ容量を圧迫しているdocker不要ファイルを削除する

事象 GoogleCloudPlatformにて利用しているマシンにて容量が逼迫しつつある root@instance-1:~# df ... /dev/sda1 10253588 8052492 1660528 83% / ... 原因 du -h --max-depth=1 PATHにて調査する。rootディレクトリ直下 # du -h --max-depth=1 / ... 2.6G …

【Docker入門】Overlayfsによる複数層の重ね合わせハンズオン

はじめに 以下の記事にてDockerで利用される基盤技術を簡単に紹介しましたが 今回はコンテナ技術で採用される「overlayfs」というファイルシステムについて実際にコマンド発行しながら解説します。 Overlayfsハンズオン 以下のように二つのディレクトリを作…

ミルクボーイのネタ風にDockerを紹介する

好きな技術? DevOps界隈で注目? 利用に敷居が高い? 起動速度が速い? 基幹システムでの利用? 憧れ? 勉強は不要? 画面いっぱいのコンテナ でも... 終わりに 好きな技術? ボケ「うちのオカンがね、好きな技術があるらしいんやけど、その名前をちょっと…

【Docker】MultiStageBuildを用いたDockerfileによるイメージ作成

はじめに 以下の記事にてコンテナイメージを作成する手法の一つとしてDockerfileを利用する方法について説明しました。 今回は、従来のDockerfileを利用した手法からDockerイメージのサイズを削減する機能であるmulti-stage buildについて解説します。主にラ…

【Docker】runCによる脆弱性ってなに?

はじめに Dockerを語る上でセキュリティは気になるポイントですがCVE-2019-5736と呼ばれる脆弱性が報告されたことがありました。現在は既に修正版がリリースされていますが、昔話としてどのような話だったのかを簡単に解説します。 何が問題? この問題は「r…

【Docker入門】CGROUPによるプロセスリソースの管理

はじめに Dockerを始めとしたコンテナ型仮想化を、技術として捉えた際に出てくる用語に「Namespace」と「CGROUP」があります。 Dockerとは? 本記事ではCGROUPとはなんぞや?といった層を対象に、分かりやすく説明してみました。 このあたりを抑えてなくても…

【Docker入門】Namespaceによる名前空間の分離

はじめに Dockerを始めとしたコンテナ型仮想化を技術として捉えた際に出てくる用語に「Namespace」と「CGROUP」があります。 Dockerとは? 本記事ではNamespaceとはなんぞや?といった層を対象に、分かりやすく説明してみました。 このあたりを抑えてなくて…

【Docker】コンテナを一気に消すワンライナーとその解説

停止しているコンテナをまとめて削除するワンライナー docker rm -v $(docker ps -q -f status=exited) 以下、補足です。 補足 以下コマンドで停止済みのコンテナ含めて確認可能です。 # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAME…

【Docker】linkオプションでコンテナ間を接続する

はじめに オプションを指定せずにコンテナを作成するとそのコンテナはbridgeに接続されます。 よって、特段手当をせずとも同一ホスト上ではコンテナ間で通信可能です。 参考記事 一方で、コンテナを作成する際に接続先のコンテナが判明している場合はdocker …

【Docker】docker startをしてもコンテナの状態がExitedになる

想定されるケース docker run -tiでコンテナを作成していない以下、補足です。 補足 dockerのマニュアルにもありますが、startは単にコンテナの起動でrunは新規コンテナの立ち上げです。 start : Start a container run : Run a command in a new container…

【Docker】docker0のbridgeを用いてコンテナ間通信を行う

はじめに Dockerインストール時に自動的に作成されるbridgeですが、オプションを指定せずにコンテナを作成するとそのコンテナはbridgeに接続した構成となります。本記事ではDockerのネットワーク理解の第一歩として,同一ホストで作成した二つのコンテナ間で…

【Docker】コンテナ上のディレクトリをホストと共有する

はじめに コンテナ上で作成したファイルは、コンテナを破棄すれば消えてしまいます。 ホスト上で管理しているファイルをコンテナ側で利用したいケースもあります。そのような場合はコンテナの外に置いたデータをコンテナにマウントして見せる必要があります…

【Docker】変更を加えたコンテナをイメージとして別名保存する

はじめに Dockerの世界にて「イメージは読み取り専用のコンテナテンプレート」ですが、 例えば以下のように元のイメージをベースに修正を加えたものを新たなテンプレートとしたいケースがあります。 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE d…

【サルでも分かる】Docker入門

はじめに Dockerとは?流行っているのは知ってるけどピンときていないという方向けに、分かりやすい入門記事を書いてみました。ちなみにドッカーと読みます。ゴールはDockerについて分かった気になることです。所要時間 : 10分 Dockerとは? Dockerとはずば…

【Docker】テスト環境用意ハンズオン

はじめに 本記事では初めてDockerを触る方を対象に 「コンテナ上でテスト環境を用意する」流れを説明しています。また、その流れでよく使うコマンドも紹介しています。以下がイメージ図です。 Dockerで用意するのはホスト上に影響を与えないテスト環境のため…


他の記事を読む