LinuxにDockerコンテナをインストールする方法は? (UbuntuとCentOS)
公開: 2019-08-01 Dockerは、間違いなく、エンタープライズおよび/またはパーソナルプロジェクトのニーズに最適なContainer Management Platform
です。
なぜDockerが必要なのですか?
プロジェクトのこの単純なシナリオを考えてみましょう。
- 50を超えるMaven依存関係を持つ複雑なJavaEnterpriseアプリケーションがあります。
- ローカルサービスへの依存関係はもう少しあります。
- 独自のデータベースインスタンスをローカルで実行しています。
- 環境のセットアップに必要な10を超えるカスタムシェルスクリプトがあります。
- 最大5つの環境変数があります。
- 最大5つの自動起動スクリプトがあります。
- 等々…
さて、あなたがあなたの顧客に上記のすべてを出荷したいとき、それはたくさんのステップです。 そうですね。
そこでDockerが登場します。
シンプルさ:
上記のすべてをsingle docker image
に構築して組み立て、そのイメージを顧客に出荷するのはどうですか? これは、クライアントのsingle step install
であり、 get ready within few minutes
。
このチュートリアルではinstall Docker on Linux
方法と必要なすべての手順について説明します。
始めましょう:
ステップ1。 Linuxホストにログインし、前提条件を確認します
Dockerには3つのフレーバーがあります。
- Dockerエンジン–コミュニティ
- Dockerエンジン–エンタープライズ
- Docker Enterprise
このチュートリアルでは、 Docker Community Edition
をインストールする手順について説明します。
1.1)Linuxホストにログインします。
LinuxホストとしてDigitalOceandropletを使用しています。
1 2 3 |
bash - 3.2 $ ssh root @ 45.56.94.4 root @ 45.56.94.4 ' s password : Welcome to Ubuntu 19.04 ( GNU / Linux 5.0.0 - 13 - generic x86_64 ) |
1.2)Linux OSアーキテクチャを確認します。
64-bit
アーキテクチャが必要です。
1 2 3 |
root @ localhost : ~ # arch x86_64 |
1.3)Linux OSカーネルレベルを確認します:
カーネルレベルは3.0より大きくする必要があります。
1 2 3 |
root @ localhost : ~ # uname -r 5.0.0 - 13 - generic |
ステップ2。 Docker CommunityEditionをインストールします
2.1)Dockerの公式PGPキーをシステムに追加してください。
1 2 3 4 |
root @ localhost : ~ # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - OK root @ localhost : ~ # |
2.2)正しいPGPキーを取得していることを確認してください。
1 2 3 4 |
root @ localhost : ~ # sudo apt-key fingerprint 0EBFCD88 | grep 5822 Warning : apt - key output should not be parsed ( stdout is not a terminal ) 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 |
2.3)UbuntuOSを最新バージョンにインストールしてください
Command:
sudo apt-get update
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
root @ localhost : ~ # sudo apt-get update Hit : 1 http : //mirrors.linode.com/ubuntu disco InRelease Get : 2 http : //mirrors.linode.com/ubuntu disco-updates InRelease [97.5 kB] Get : 3 http : //mirrors.linode.com/ubuntu disco-backports InRelease [88.8 kB] Hit : 4 https : //download.docker.com/linux/ubuntu disco InRelease Get : 5 http : //mirrors.linode.com/ubuntu disco-updates/main amd64 Packages [226 kB] Get : 6 http : //security.ubuntu.com/ubuntu disco-security InRelease [97.5 kB] Get : 7 http : //mirrors.linode.com/ubuntu disco-updates/main i386 Packages [194 kB] Get : 8 http : //mirrors.linode.com/ubuntu disco-updates/universe i386 Packages [252 kB] Get : 9 http : //mirrors.linode.com/ubuntu disco-updates/universe amd64 Packages [254 kB] Get : 10 http : //mirrors.linode.com/ubuntu disco-updates/universe Translation-en [80.1 kB] Get : 11 http : //security.ubuntu.com/ubuntu disco-security/main i386 Packages [144 kB] Get : 12 http : //security.ubuntu.com/ubuntu disco-security/main amd64 Packages [173 kB] Get : 13 http : //security.ubuntu.com/ubuntu disco-security/universe amd64 Packages [220 kB] Get : 14 http : //security.ubuntu.com/ubuntu disco-security/universe i386 Packages [217 kB] Get : 15 http : //security.ubuntu.com/ubuntu disco-security/universe Translation-en [55.4 kB] Fetched 2 , 098 kB in 2s ( 1 , 188 kB / s ) Reading package lists . . . Done |
2.4)最新の安定したDockerリポジトリをセットアップする
Command:
sudo add-apt-repository“ deb [arch = amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs)stable”
1 2 3 4 5 6 7 8 |
root @ localhost : ~ # sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" Hit : 1 http : //mirrors.linode.com/ubuntu disco InRelease Hit : 2 http : //mirrors.linode.com/ubuntu disco-updates InRelease Hit : 3 http : //mirrors.linode.com/ubuntu disco-backports InRelease Hit : 4 https : //download.docker.com/linux/ubuntu disco InRelease Hit : 5 http : //security.ubuntu.com/ubuntu disco-security InRelease Reading package lists . . . Done |
2.5)Dockerをインストールします
Command:
sudo apt-get install docker-ce
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
root @ localhost : ~ # sudo apt-get install docker-ce Reading package lists . . . Done Building dependency tree Reading state information . . . Done The following packages were automatically installed and are no longer required : bridge - utils dns - root - data dnsmasq - base ubuntu - fan Use 'sudo apt autoremove' to remove them . The following additional packages will be installed : aufs - tools containerd . io docker - ce - cli libltdl7 The following packages will be REMOVED : containerd docker . io runc The following NEW packages will be installed : aufs - tools containerd . io docker - ce docker - ce - cli libltdl7 0 upgraded , 5 newly installed , 3 to remove and 101 not upgraded . Need to get 87.9 MB of archives . After this operation , 133 MB of additional disk space will be used . Do you want to continue ? [ Y / n ] Y Get : 1 http : //mirrors.linode.com/ubuntu disco/universe amd64 aufs-tools amd64 1:4.9+20170918-2 [104 kB] Get : 2 http : //mirrors.linode.com/ubuntu disco/main amd64 libltdl7 amd64 2.4.6-10 [38.3 kB] Get : 3 https : //download.docker.com/linux/ubuntu disco/stable amd64 containerd.io amd64 1.2.6-3 [22.6 MB] Get : 4 https : //download.docker.com/linux/ubuntu disco/stable amd64 docker-ce-cli amd64 5:19.03.1~3-0~ubuntu-disco [42.5 MB] Get : 5 https : //download.docker.com/linux/ubuntu disco/stable amd64 docker-ce amd64 5:19.03.1~3-0~ubuntu-disco [22.7 MB] Fetched 87.9 MB in 3s ( 34.9 MB / s ) ( Reading database . . . 83080 files and directories currently installed . ) Removing docker . io ( 18.09.5 - 0ubuntu1 ) . . . '/usr/share/docker.io/contrib/nuke-graph-directory.sh' - > '/var/lib/docker/nuke-graph-directory.sh' Removing containerd ( 1.2.6 - 0ubuntu1 ) . . . Removing runc ( 1.0.0 ~ rc7 + git20190403 . 029124da - 0ubuntu1 ) . . . Selecting previously unselected package aufs - tools . ( Reading database . . . 82836 files and directories currently installed . ) Preparing to unpack . . . / aufs - tools_1 % 3a4.9 + 20170918 - 2_amd64.deb . . . Unpacking aufs - tools ( 1 : 4.9 + 20170918 - 2 ) . . . Selecting previously unselected package containerd . io . Preparing to unpack . . . / containerd . io_1 . 2.6 - 3_amd64.deb . . . Unpacking containerd . io ( 1.2.6 - 3 ) . . . Selecting previously unselected package docker - ce - cli . Preparing to unpack . . . / docker - ce - cli_5 % 3a19.03.1 ~ 3 - 0 ~ ubuntu - disco_amd64 . deb . . . Unpacking docker - ce - cli ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Selecting previously unselected package docker - ce . Preparing to unpack . . . / docker - ce_5 % 3a19.03.1 ~ 3 - 0 ~ ubuntu - disco_amd64 . deb . . . Unpacking docker - ce ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Selecting previously unselected package libltdl7 : amd64 . Preparing to unpack . . . / libltdl7_2 . 4.6 - 10_amd64.deb . . . Unpacking libltdl7 : amd64 ( 2.4.6 - 10 ) . . . Setting up aufs - tools ( 1 : 4.9 + 20170918 - 2 ) . . . Setting up containerd . io ( 1.2.6 - 3 ) . . . Setting up libltdl7 : amd64 ( 2.4.6 - 10 ) . . . Setting up docker - ce - cli ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Setting up docker - ce ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Installing new version of config file / etc / init . d / docker . . . Installing new version of config file / etc / init / docker . conf . . . Created symlink / etc / systemd / system / multi - user . target . wants / docker . service → / lib / systemd / system / docker . service . Processing triggers for systemd ( 240 - 6ubuntu5 ) . . . Processing triggers for man - db ( 2.8.5 - 2 ) . . . Processing triggers for libc - bin ( 2.29 - 0ubuntu2 ) . . . |

2.6)Dockerのバージョンを確認する
1 2 |
root @ localhost : ~ # docker -v Docker version 19.03.1 , build 74b1e89 |
ステップ-3。 Dockerを起動し、HelloWorldを実行します
3.1)LinuxでDockerを実行するための簡単なコマンド
上記のように、インストール中にDockerはそれ自体をシステムサービスとして登録します: /lib/systemd/system/docker.service
。
1 |
root @ localhost : ~ # sudo systemctl start docker |
3.2)Hello WorldDockerをプルして実行しましょう
Command:
sudo docker run hello-world
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
root @ localhost : ~ # sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest : Pulling from library / hello - world 1b930d010525 : Pull complete Digest : sha256 : 6540fc08ee6e6b7b63468dc3317e3303aae178cb8a45ed3123180328bcc1d20f Status : Downloaded newer image for hello - world : latest Hello from Docker ! This message shows that your installation appears to be working correctly . To generate this message , Docker took the following steps : 1. The Docker client contacted the Docker daemon . 2. The Docker daemon pulled the "hello-world" image from the Docker Hub . ( amd64 ) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading . 4. The Docker daemon streamed that output to the Docker client , which sent it to your terminal . To try something more ambitious , you can run an Ubuntu container with : $ docker run - it ubuntu bash Share images , automate workflows , and more with a free Docker ID : https : //hub.docker.com/ For more examples and ideas , visit : https : //docs.docker.com/get-started/ root @ localhost : ~ # |
上記のコマンドはDockerイメージをプルし、Docker HelloWorldアプリケーションを実行できるようになります。
ステップ-4。 Dockerイメージ/リポジトリを確認する方法は?
Hello Worldアプリを実行する前に:
1 2 3 4 5 6 |
root @ localhost : ~ # docker images REPOSITORY TAG IMAGE ID CREATED SIZE keyansoftwares / logviewersvc latest 04612d6a457d 2 months ago 144MB keyansoftwares / logreadagent latest 0385a757deb5 2 months ago 138MB keyansoftwares / logreadagent < none > d75a02abb278 2 months ago 369MB grafana / grafana latest f96bf1723e2a 3 months ago 245MB |
Hello Worldアプリを実行した後:
ここに表示されているように、新しいリポジトリhello-worldが下に表示されます
1 2 3 4 5 6 7 |
root @ localhost : ~ # docker images REPOSITORY TAG IMAGE ID CREATED SIZE keyansoftwares / logviewersvc latest 04612d6a457d 2 months ago 144MB keyansoftwares / logreadagent latest 0385a757deb5 2 months ago 138MB keyansoftwares / logreadagent < none > d75a02abb278 2 months ago 369MB grafana / grafana latest f96bf1723e2a 3 months ago 245MB hello - world latest fce289e99eb9 7 months ago 1.84kB |
おめでとう。 準備万端です。 Linux環境をDocker用にセットアップし、Dockerをインストールして、最初のDockerアプリケーションも実行しました。
追加のステップ:
これらのインストール後の手順に従うことをお勧めします。
VMの再起動後にDockerを自動起動するにはどうすればよいですか?
Command:
sudo systemctl enable docker
1 2 3 4 |
root @ localhost : ~ # sudo systemctl enable docker Synchronizing state of docker . service with SysV service script with / lib / systemd / systemd - sysv - install . Executing : / lib / systemd / systemd - sysv - install enable docker |
上記のコマンドを実行するだけで、次回VM /ホストを再起動したときにDockerが自動的に起動します。
上記のコマンドの実行で問題が発生した場合やDockerの問題が発生した場合はお知らせください。
CentOSにDockerをインストールしたいですか?
上記のStep-2
を以下のステップに置き換えるだけです。
1 2 3 4 5 6 7 8 9 |
root @ localhost : ~ # sudo yum install -y yum-utils device-mapper-persistent-data lvm2 root @ localhost : ~ # sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo root @ localhost : ~ # sudo yum install docker-ce docker-ce-cli containerd.io root @ localhost : ~ # sudo systemctl start docker root @ localhost : ~ # sudo docker run hello-world |