Dockerに関する記事を書きまくるAdvent Calendarです.Dockerそのもの,周辺のツール(オーケストレーションなど)について知見を共有しましょう!

QEMUのユーザーモードをDockerコンテナ上で使おうとした際に発生した問題のメモ。 環境 Debian wheezy on Docker QEMUインストール時に発生するエラー バイナリで提供されているユーザーモードQEMUをインストールする。このパッケージは、インストール時にbinfmt(ネイティブとは異なるアーキテクチャ向けのバイナリをQEMU経由で実行するために必要)の設定を行ってくれる。しかしDockerコンテナ上では、その際に行われるmountコマンドの実行がエラー終了する。 (docker host)$ docker run -it <image> /bin/bash (docker container)$ apt-get install -y qemu-user-static ... mount: permission denied update-binfmts: war
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 何故コンテナなのか コンテナとはなにか Dockerを学ぶ前に、まずコンテナとは何か?VMと違って何が嬉しいのかを知ると良い。 まず、コンテナの具体例としてはDocker以前からあった、LXC (Linux Containers) というものがあるので、それを説明した以下のページがわかりやすい。 Linuxコンテナ(LXC)の基礎をまとめ直す - CTC教育サービス コンテナ型仮想化は、技術的には 「ユーザー空間を分離して、それぞれが見えるプロセス、ファイル、ネットワーク、CPU/メモリ/デバイスなどのリソースを制限する」 ということを
なぜDockerコマンドにはsudoが必要なのか? The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can access it with sudo. For this reason, docker daemon always runs as the root user. To avoid having to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it make
単一ホスト内での Docker のネットワークの仕組みをまとめてみる。 全体像 まず、Docker のネットワークは以下の図ような構成になっている。 ざっとポイントをまとめるとこんな感じ。 ホストには docker0 という仮想ブリッジが作成される コンテナは veth を介して仮想ブリッジに接続される コンテナ内からは eth0 というNIC があるように見える(実体は veth) コンテナ内の eth0 には、空いているIPアドレスが自動で割り当てられる(なので、IPアドレスは不定)。 コンテナからホストの外部に通信するには、NAT(IPマスカレード)が使われる 単一ホスト上のコンテナ間の通信は、仮想ブリッジを経由して行われる(なので、コンテナ内で見える 172.17.0.0/16 のアドレスを使って通信できる) もう少し詳しく 分からないところを調べてみた。 仮想ブリッジ Linux
docker-machineをVirtualBoxで使っているときにデータを永続化したい場合には、 Data Volumeと共有フォルダ機能を組み合わせてデータを保存する方法があります。 基本的な使い方と、任意のディレクトリをマウントする応用形の2種類を用意しました。 ちょくちょく読み替えればMacでも使えると思われます。 前提 Windows 10 VirtualBox 5.0.6 Docker Toolbox 1.8.2c dev という名前で VirtualBox上に docker-machine VM を用意しています 【基本形】C:\Users 配下をData Volumeにする場合 まずは基本形。docker-machine (旧 boot2docker)は Windows環境であれば、 C:\Users をVirtualBox共有フォルダとしてdockerホストの /c/Us
Dockerの覚書です。 #Dockerの基本的な使い方 ##Dockerとは ITproだったかどっかのページのリンクを張る。 Docker本家のページも良いですが、@ITの記事のほうが解りやすいと思ったのでそのリンクを載せます。 http://www.atmarkit.co.jp/ait/articles/1405/16/news032.html Docker本家: http://docker.com/ ##用語 イメージ:コンテナが動作するためにベースとなるファイル群。コンテナによってイメージが変更されることはなく不変のもの。Docker Hubから取得可能。CentOSイメージが汎用的なので初心者には使いやすいと思う。 コンテナ:イメージから作成されたインスタンスのようなもの。コンテナが動作することで生成されたファイルは、イメージではなくコンテナに紐づいて管理される。ざっくり言うと
概要 この記事では、アプリケーションコンテナのランタイムであるDockerとrktについて、 2つの大まかな違いを説明し、Dockerとrktそれぞれを使用してコンテナの取得・作成・起動・破棄など基本的なコンテナ操作を実施してみます。 記事全体として「Dockerはある程度知ってるけど、それに比べてrktってどうなんだ?」というトーンで書いています。 Dockerとは 公式:https://www.docker.com/ Docker社が開発しているオープンソースのコンテナランタイムです。 コンテナ技術自体は決して新しくはないですが、その使いやすさからある種のコンテナブーム(?)を巻き起こしたともいえるかと思います。 詳しい情報は、ググれば良い記事が山ほど出てくるので割愛します。 rktとは 公式:https://coreos.com/rkt/docs/latest/ CoreOS社が開発
一時期はalpineに乗っかったMySQLを使おうとしましたがMariaDBだったので断念。 いくら互換だとはいえ、まだ自分には早い。 そんなわけでDocker MySQL公式イメージの5.5を利用してDBを構築。 公式イメージ https://hub.docker.com/_/mysql/ 初期データを投入した状態でgithubにpushしようとしたら、rejectされてしまいました。 調べてみるとGithubのファイルサイズ制限にひっかかった模様 Working with large files https://help.github.com/articles/working-with-large-files/ 1ファイルあたり100MBまでとのこと。 InnoDBのibdata1がサイズ制限を超過していたのでした。かなりデータを厳選したんだけどな〜。 初期データインポートに使用したd
最近、サークル(?)でWordPressを作った物の紹介に使おうぜと提案があったので作った際の覚え書きです。 とりあえずdocker-composeでWordPressを建てます。 version: '2' services: db: image: mysql:5.7 volumes: - /home/core/wordpress/data/db:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest volumes: - /home/core/wordpress/wp-conte
やりたかったこと コンテナをDockerホストの外部に公開するときのアクセス制御設定(ファイアーウォール設定) やったこと Dockerのポートフォワーディングでコンテナをホスト外部に公開してiptablesでアクセス制限 外部ネットワークにはコンテナ443/tcpのみをアクセスを許可 内部ネットワークにはコンテナのすべてのポートを許可 Docker再起動時にiptablesルールを再設定するようにDockerのsystemdで設定 前提 Docker 1.12.3 CentOS7.2 iptables 1.4.21 Dockerのポートフォワーディング設定 Dockerでコンテナをホストの外と通信させたい時、-pオプションでポートフォワーディングを設定すると思いますが、このポートフォワーディングを設定するとiptablesに以下のような設定が追加されます。 $ iptables -nL
docker run -e 'ACCEPT_EULA=Y' \ -e 'SA_PASSWORD=P@55w0rd' \ -p 1433:1433 \ -d \ -v $(pwd):/var/opt/mssql/ \ --name mssql \ microsoft/mssql-server-linux 本家の記事にあるコマンドラインをそのままコピーすると、変な文字列が入っている場合があるので、貼り付けたあとは注意深く確認してください。 環境変数として、SQL認証のSAユーザに対するパスワードを設定していますが、パスワードは複雑である必要があります。 記事の下の方にこんなコメントがついてます。 It's also worth noting that the docker image requires passwords to match the SQL Server password val
Kubernetesの概要・特徴 概要: Kubernetes(クーバネティス、K8s)は、Googleによって開発され、現在はCloud Native Computing Foundation (CNCF) によって管理されている、コンテナ化されたアプリケーションの自動デプロイメント、スケーリング、および管理を行うためのオープンソースのプラットフォームです。複数のホスト上でコンテナを効率的に運用するための堅牢なフレームワークを提供します。 特徴: 自動化されたオーケストレーション: ポッド(Pod)と呼ばれるコンテナの集合体のデプロイメント、スケーリング、運用を自動化します。 自己修復: クラッシュしたコンテナを再起動し、指定されたコンテナを再スケジュールし、ヘルスチェックを行うことで、システムの安定性を保ちます。 サービスディスカバリーとロードバランシング: DNS名やIPアドレスを使
はじめに 機械学習試したい→Tensorflowでしょ Web上でインタラクティブに試したい→Jupyterでしょ 手軽にインフラ構築したい→Dockerでしょ ってことで、やってみたけど、パスワードどこで設定するねんって詰まっちゃったので、その解法書いておきます 想定読者 下記に当てはまる人 インフラエンジニアだけど機会学習試したい Docker最近触ってるけど詳しくわからん Pythonちょっと触ってるけどあんま知らん Jupyterいいんちゃう?知らんけど Dockerを使う理由 基本的に今持ってるMacBook Airで試せるならしたいけど、明らかにリソースが足りない。 なので、がっつりやるならAWSやGCPなどのクラウド上がベスト解です。 ローカルであたりをつけてからクラウドへ持っていきたいので、それが一番楽で、かつ最近流行ってるものと言えば、そう、Dockerです。 Jupyt
はじめに Redhatが本気でやってそうなので企業内で使うならばProject Atomicが最有力なのではないかなと、Fedora Atomic Hostを使ってEC2上でDockerコンテナのクラスタリングを試してみました。 タイトルはKubernetesと書いていますが、Atomicに入っているCockpitとかも一通り試します。 Project Atomicが何者かは、このスライド「Docker on RHEL & Project Atomic 入門 - #Dockerjp 4」が大変わかりやすいです。 試した時点の各ソフトウェアのバージョン だいぶ前ですが、試したのは2015年2月17日なので以下の情報はその日付時点の情報です。 Fedora-Cloud-Atomic-20141203-21.x86_64でrpm-ostree upgradeで入った最新バージョンです。 Kube
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く