関連サイト
本書の関連ページが用意されています。
内容紹介
コンテナ技術の発展と普及に合わせ、現在ではさまざまなコンテナが提供されるようになっています。
「コンテナ」とはLinuxのカーネルの機能を使ったインフラ技術であり、1つのLinuxサーバーを複数のサーバーのように振舞わせることで従来よりもオーバーヘッドの低い仮想化を実現します。
コンテナの代表的な仕組みであるDockerを使うことで、さまざまなサーバー環境がパッケージ化でき、システムへ簡単に導入/移動/削除できるようになります。そして、これらの普及に合わせて新しいソフトウェアや独自の環境をコンテナ化したいという要望も増えて来ました。
本書は、コンテナの作成に広く使われている「Alpine Linux」を解説するものです。Alpine LinuxはOSに付属のソフトウェア群を極力削った軽量ディストリビューションであり、とても小さなフットプリントを持ちます。このため、導入が簡単で運用しやすい小さなコンテナを作ることが可能です。
本書では、OSとしてのAlpine Linuxの特徴を解説し、その導入の方法や基本的な操作をLinuxの基本から解説します。また、各種のサーバーの導入方法など、目的のソフトウェアを導入したシステムを作成するための手順を解説するほか、それらをDockerコンテナとするための手順も詳しく解説します。
本書の内容を学ぶことで、自分の目的に応じたオリジナルのコンテナを開発でき、それらを公開して運用することも可能となります。現代のシステムインフラストラクチャーに欠かせないコンテナ技術の実践的な活用法を学べる一冊です。
書誌情報
- 著者: 中島 能和
- 発行日: 2021-06-24 (紙書籍版発行日: 2021-06-24)
- 最終更新日: 2021-06-24
- バージョン: 1.0.0
- ページ数: 320ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
Dockerの使い方とDockerコンテナについて基本から学びたい方、独自のDockerコンテナの作成を学びたい方、軽量OSであるAlpine Linuxeについて知りたい方
著者について
中島 能和
Linux・ネットワーク・プログラミングの幅広い知識を基に、初心者にもわかりやすい執筆活動を行っている。『1 週間でLPIC の基礎が学べる本』、『徹底攻略 LPI 問題集Level2 対応』(ともにインプレス)、『CentOS 徹底入門』、『Linux 教科書 LPICレベル1(ともに翔泳社)など著書多数。
目次
はじめに
- 本書の表記
- 本書で使用した実行環境
第1章 Alpine Linux の概要とインストール
- 1-1 Alpine Linux とは
- 1-1-1 Alpine Linux の概要
- 1-1-2 Alpine Linux の特徴
- 1-1-3 Alpine Linux のバージョン
- 1-1-4 Alpine Linux のアーキテクチャ
- 1-2 Alpine Linux のインストール
- 1-2-1 Alpine Linux のダウンロードイメージ
- 1-2-2 物理サーバー・仮想マシンへのインストール
- 1-3 まとめ
第2章 Docker でAlpine Linux をさわってみよう
- 2-1 Docker の概要とインストール
- 2-1-1 Docker とは
- 2-1-2 Docker のインストール(CentOS)
- 2-1-3 Docker のインストール(Ubuntu)
- 2-1-4 Docker のインストール(Alpine)
- 2-1-5 Docker のインストール(AWS)
- 2-2 Docker の基本操作
- 2-2-1 docker コマンド
- 2-2-2 Docker イメージを取得する
- 2-2-3 コンテナを起動する
- 2-2-4 コンテナを削除する
- 2-2-5 コンテナ内で作業する
- 2-2-6 コンテナを再開、停止する
- 2-2-7 Docker イメージを削除する
- 2-2-8 コンテナを検索する
- 2-3 Alpine Linux 入門
- 2-4 まとめ
第3章 Linux の基礎知識
- 3-1 ファイル管理
- 3-1-1 Linux のファイル名
- 3-1-2 ファイルの種類
- 3-1-3 ファイルの一覧表示
- 3-1-4 絶対パスと相対パス
- 3-1-5 Linux のディレクトリ階層
- 3-1-6 ファイルの表示とディレクトリ移動
- 3-1-7 ファイルのコピー、移動、削除
- 3-1-8 ディレクトリの作成、コピー、移動、削除
- 3-2 ファイルとディレクトリの圧縮と解凍
- 3-2-1 gzip コマンドとgunzip コマンド
- 3-2-2 bzip2コマンドとxz コマンド
- 3-2-3 zip コマンドとunzip コマンド
- 3-2-4 tar コマンドとアーカイブ
- 3-2-5 ハードリンクとシンボリックリンク
- 3-3 パーミッション
- 3-3-1 所有者と所有グループ
- 3-3-2 パーミッションの設定
- 3-3-3 ディレクトリのアクセス権
- 3-3-4 パーミッションの変更
- 3-4 シェル
- 3-4-1 シェルとは何か
- 3-4-2 メタキャラクタ
- 3-4-3 標準入出力
- 3-4-4 パイプ
- 3-4-5 シェルの便利な機能
- 3-4-6 シェル変数と環境変数
- 3-4-7 引用符
- 3-4-8 コマンドとパス
- 3-5 シェルスクリプト
- 3-5-1 シェルスクリプトとは
- 3-5-2 シェルスクリプトの決まりごと
- 3-5-3 シェルスクリプトの実行方法
- 3-5-4 引数と終了ステータス
- 3-6 テキスト処理
- 3-6-1 正規表現
- 3-6-2 grep コマンド
- 3-6-3 ファイルの一部を表示するコマンド
- 3-7 プロセスの管理
- 3-7-1 プロセスとは
- 3-7-2 システム情報の表示
- 3-7-3 プロセスの終了
- 3-8 ファイルシステム
- 3-8-1 ファイルシステムとは
- 3-8-2 パーティションの作成
- 3-8-3 ファイルシステムの作成
- 3-8-4 マウントとアンマウント
- 3-8-5 /etc/fstab ファイル
- 3-9 まとめ
第4章 Alpine Linux の構成
- 4-1 軽量化を実現する仕組み
- 4-1-1 BusyBox
- 4-1-2 OpenRC
- 4-1-3 Syslinux
- 4-2 基本的なシステム管理
- 4-2-1 シャットダウンと再起動
- 4-2-2 サービスの管理
- 4-2-3 rc-update コマンド
- 4-2-4 rc-service コマンド
- 4-2-5 ログの管理
- 4-2-6 crontab
- 4-2-7 システム監視
- 4-2-8 alpine-setup コマンド
- 4-3 パッケージ管理システム
- 4-3-1 パッケージの検索
- 4-3-2 apk コマンド
- 4-3-3 インデックスの更新
- 4-3-4 パッケージのインストールと削除
- 4-3-5 パッケージとシステムのアップデート
- 4-3-6 パッケージの検索
- 4-3-7 パッケージ情報の確認
- 4-3-8 ヘルプの表示
- 4-3-9 リポジトリの設定
- 4-4 より快適に利用するために
- 4-4-1 インストール後にやっておきたいこと
- 4-4-2 注意すべきコマンド
- 4-5 まとめ
第5章 Alpine Linux サーバーの構築
- 5-1 ネットワークの管理
- 5-1-1 ネットワークインターフェイスの設定
- 5-1-2 DNS の設定
- 5-1-3 ホスト名の設定
- 5-1-4 ネットワークの疎通確認
- 5-1-5 ネットワーク情報の確認
- 5-1-6 ファイアウォール
- 5-2 Apache Web サーバーの構築
- 5-2-1 Apache の導入と起動
- 5-2-2 Apache の基本設定
- 5-2-3 PHP の利用
- 5-3 Nginx Web サーバーの構築
- 5-3-1 Nginx の導入と起動
- 5-3-2 Nginx の設定
- 5-3-3 PHP の利用
- 5-4 OpenSSH サーバーの構築
- 5-4-1 OpenSSH サーバーの導入と起動
- 5-4-2 OpenSSH サーバーの設定
- 5-4-3 公開鍵認証の設定
- 5-4-4 SSH クライアント
- 5-5 Samba サーバーの構築
- 5-5-1 Samba サーバーの導入と起動
- 5-5-2 Samba サーバーの設定
- 5-6 MariaDB
- 5-6-1 MariaDB のインストールと初期設定
- 5-6-2 MariaDB の初期設定
- 5-6-3 MariaDB クライアントコマンドの利用
- 5-6-4 MariaDB のバックアップとリストア
- 5-7 PostgreSQL
- 5-7-1 PostgreSQL のインストール
- 5-7-2 PostgreSQL のクライアントコマンド
- 5-7-3 PostgreSQL のバックアップとリストア
- 5-8 まとめ
第6章 Docker イメージの作成
- 6-1 Docker イメージの基礎
- 6-1-1 コンテナからDocker イメージを作成する
- 6-1-2 Dockerfile でコンテナを作成する
- 6-1-3 Dockerfile の構文
- 6-2 Docker イメージの作成例
- 6-2-1 Web サーバー(Apache)
- 6-2-2 Samba
- 6-2-3 Python
- 6-2-4 CentOS
- 6-2-5 BusyBox
- 6-3 まとめ
第7章 Docker ネットワークとDocker Compose
- 7-1 Docker のネットワークとマウント
- 7-1-1 仮想ネットワークの利用
- 7-1-2 ポート公開
- 7-1-3 バインドマウント
- 7-1-4 ボリュームマウント
- 7-2 Docker Compose
- 7-2-1 Docker Compose のインストール
- 7-2-2 YAML
- 7-2-3 docker-compose.yml
- 7-2-4 docker-compose コマンド
- 7-3 まとめ
付録A
- A-1 Docker とVisual Studio Code の連携
- A-2 プライベートレジストリを構築する
- A-3 Alpine Linux & Docker 重要コマンド一覧