記事ディレクトリ
Linuxクラウドコンピューティングアーキテクチャ-Dockerコンテナ仮想化プラットフォームの展開(1)
1.Dockerの概要
Dockerは、オープンソースのアプリケーションコンテナエンジンです。開発者は、アプリケーションと依存関係をポータブルコンテナにパッケージ化してから、仮想化も可能な一般的なLinuxマシンに公開できます。コンテナはサンドボックスメカニズムを完全に使用し、コンテナ間にインターフェイスはありません。パフォーマンスのオーバーヘッドはほとんどなく、マシンやデータセンターで簡単に実行できます。最も重要なことは、それらは言語、フレームワーク、またはパッケージングシステムに依存しないことです。
Dockerは、dotCloudによるLXCベースの高度なコンテナエンジンオープンソースです。ソースコードは、Githubでホストされ、Go言語とApache2.0プロトコルに準拠したオープンソースに基づいています。
LinuxコンテナテクノロジであるLXC(Linuxコンテナ)は、命令解釈メカニズムやその他の完全仮想化の複雑さを提供することなく、プロセスとリソースを分離する軽量仮想化を提供できるカーネル仮想化テクノロジです。各ユーザーインスタンス間の
namespace
分離は、主にカーネルを介して実現されます。cgroups
リソースの割り当てと測定の実現を通じて。
Dockerの目的: Dockerイメージは一度作成され、どこでも実行されます。
Docker公式サイト:https://www.docker.com/
ドッカーサーバーはクジラと見なすことができ、コンテナはクジラのコンテナと見なすことができます。
Dockerコンテナと仮想マシンはどちらも仮想化テクノロジーです。DockerにはHypervisor仮想マシンが含まれていないため、Dockerは仮想マシンよりも効率的です。dockerインスタンスを開始するのに約1〜2秒かかります。
仮想マシンテクノロジー:
ドッカーコンテナテクノロジー:
2.Dockerアーキテクチャ
2.1Dockerの動作原理
2.2Dockerコアテクノロジー
テクノロジー1:名前付け[コンテナのプロセス、ネットワーク、メッセージ、ファイルシステム、およびホスト名を分離します]
テクノロジー2:cgroup [cpuとメモリの割り当てなど、リソースの割り当てと測定を実現する]
機能:
ファイルシステムの分離:各プロセスコンテナは完全に独立したルートファイルシステムで実行されます。
ネットワークの分離:各プロセスコンテナには独自のネットワーク、仮想インターフェイス、およびIPアドレスがあります。
ログの分離:dockerは各プロセスコンテナの情報を収集して記録します。リアルタイム検索とバッチ検索の標準ストリーム。
変更管理:コンテナファイルシステムへの変更を新しいイメージに送信できます。このイメージを再利用して、より多くのコンテナを作成できます。
リソースの分離:システムリソースはオンデマンドで割り当てられ、相互に分離されます。cgroupを使用して
インタラクティブシェルを構成する:dockerは仮想端末を割り当てて、任意のコンテナーの標準入力ストリームに関連付けることができます。
利点:
1。vmよりも小さく、vmよりも高速で、コンテナーインスタンスの開始に1〜2秒しかかかりません
。2。dockerは1つです。分散アプリケーションを構築、公開、および実行するためのオープンプラットフォーム。
3.会社のローカルエリアネットワーク、クラウド、および仮想マシンでdockerを使用できます
。4。開発者はアプリケーションが使用するオペレーティングシステムを気にする必要がありません
。5。Unix/ Linux、Windows、Macおよびその他のオペレーティングシステムでdockerを使用できます。
欠点:
1。dockerアプリケーションで使用する場合に最も役立ちますが、データは含まれません。ログ、トレース、およびデータベースは、ドッカーコンテナの外部に配置されます。コンテナの画像は小さいことが多く、大量のデータを保存するのには適していません。ストレージは外部マウントによって実現できます。[Dockerはコンピューティングにのみ使用され、ストレージは他のユーザーに渡されます]
2. mysqlおよびoracleデータベースは、大量のデータを格納するdockerでの実行には適していません。
3.Dockerの展開
老名字:docker、docker-engine【yuminstalldocker】【yuminstalldocker-engine】
新しい名前:docker-ce(オープンソース)、docker-ee(クローズドソース)
dockerをインストールします。
# 安装docker环境依赖
[root@server ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置国内docker的yum源,这里使用aliyun的
官方源:https://download.docker.com/linux/centos/docker-ce.repo
阿里源:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清华源:https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
# 安装docker
[root@server ~]# yum install docker-ce docker-ce-cli containerd.io -y
# 启动并开机自启
[root@server ~]# systemctl start docker && systemctl enable docker
# 查看docker的版本信息、系统信息(容器和镜像个数)
[root@server ~]# docker version
Client: Docker Engine - Community
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:03:45 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.13
API version: 1.40 (minimum version 1.12)
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:02:21 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.7
GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
[root@server ~]# docker info
Client:
Debug Mode: false
Server:
Containers: 0 -- 容器个数
Running: 0 -- 运行的容器个数
Paused: 0 -- 终止的容器个数
Stopped: 0 -- 停止的容器个数
Images: 0 -- 镜像个数
Server Version: 19.03.13
dockerの簡単な使用:画像をプル
# docker的使用
# 搜索image,OFFICIAL为OK才是安全可用的。
[root@server ~]# docker search centos
# 从docker hub上下载image到docker服务器
[root@server ~]# docker pull centos
=================================================================
pull的四种方法:
法1:使用阿里云docker镜像加速器,提升pull的速度
创建配置文件 /etc/docker/daemon.json【推荐使用】
{
"registry-mirrors": ["https://e9yneuy4.mirror.aliyuncs.com"] }
修改docker服务启动脚本【不推荐使用】
# 重新加载systemd服务脚本
systemctl daemon-reload
# 重启docker服务
systemctl restart docker
法2:使用网易镜像https://c.163.com/hub#/m/home/
法3:将image导入容器
docker load -i /root/docker.io-centos-lastest-image.tar
法4:下载其他站点的应用程序
docker pull hub.c.163.com/library/tomcat:latest
=================================================================
# 列出本地所有镜像,通过info可以看到有一个镜像,通过images可以看到具体是哪个镜像。
[root@server ~]# docker info
Client:
Debug Mode: false
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 1
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0d120b6ccaa8 8 weeks ago 215MB
# 删除镜像前必须删除使用该镜像创建的容器,否则只会删除镜像的TAG
[root@server ~]# docker rmi 0d120b6ccaa8
Dockerイメージには、プログラムと、プログラムが依存するライブラリまたはバイナリファイルが含まれます。
# 开启NAT网络转发功能
[root@server ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@server ~]# sysctl -p # NAT立即生效
net.ipv4.ip_forward = 1
[root@server ~]# cat /proc/sys/net/ipv4/ip_forward
1
# 启动docker实例
[root@server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0d120b6ccaa8 8 weeks ago 215MB
[root@server ~]# docker run -it centos:latest /bin/bash
# 新开一个终端查看正在运行的docker容器,可以看到有一个容器实例正在运行。
[root@server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19c2d3353908 centos:latest "/bin/bash" 16 seconds ago Up 15 seconds elastic_proskuriakova
# 关闭firewalld防火墙后,需重启docker服务,否则ip包转发功能无法使用。
[root@server ~]# systemctl stop firewalld
[root@server ~]# systemctl restart docker
4.Dockerコンテナ仮想化プラットフォームの使用
コマンドを実行する | 意味 |
---|---|
Docker画像 | そこにあるドッカー画像を見る |
docker run -it centos:latest bash | コンテナを実行し、ミラーセントをロードし、ドッカーインスタンス環境を開始し、インスタンスでbashコマンドを実行します |
出口 | インスタンス環境を終了します |
パラメータ | 意味 |
---|---|
-私 | コンテナをインタラクティブモードで実行します。通常は-tとともに使用します |
-t | コンテナの疑似出力端子を再割り当てします。通常は-iとともに使用されます。 |
-d | バックグラウンドでコンテナを実行し、コンテナIDを返します |
-c | 完了するコマンド |
dockerログコンテナID |コンテナショートID | コンテナからログを取得し、出力コンテンツを表示します。これを使用して、後でエラーメッセージまたはdockerインスタンスの標準出力にポップアップ表示される通常の情報を確認できます。 |
docker ps | 実行中のすべてのコンテナを一覧表示します |
docker ps -a | スリープ状態または終了状態のコンテナを含む、すべてのコンテナを一覧表示します。 |
殺します | コンテナを殺す |
実行 | コンテナインスタンスを作成して実行します |
やめる | インスタンスを停止します |
開始 | インスタンスを開始します |
再起動 | インスタンスを再起動します |
docker exec-itコンテナ名|コンテナID / bin / bash | コンテナに入る |
rm | インスタンスが停止している場合は、インスタンスを削除します |
rm -f | 実行中のインスタンスである可能性がある強制削除。 |
実際の戦闘訓練:
# 后台运行一个容器实例,并在容器中的终端执行命令df -h,返回值是容器ID
[root@server ~]# docker run -d centos:latest /bin/bash -c "df -h"
3e5930e087a17e6f11298a1786844da22facb390e90115d7a8ff57cce0b33a09
[root@server ~]# docker logs 3e59
Filesystem Size Used Avail Use% Mounted on
overlay 17G 6.1G 11G 36% /
tmpfs 64M 0 64M 0% /dev
tmpfs 910M 0 910M 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
/dev/mapper/centos_master-root 17G 6.1G 11G 36% /etc/hosts
tmpfs 910M 0 910M 0% /proc/acpi
tmpfs 910M 0 910M 0% /proc/scsi
tmpfs 910M 0 910M 0% /sys/firmware
# 启动一个容器实例
[root@server ~]# docker run -it centos:latest /bin/bash
[root@397d90de57b3 /]#
# 新开一个终端,杀死启动的容器实例
[root@server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
397d90de57b3 centos:latest "/bin/bash" 37 seconds ago Up 36 seconds recursing_jepsen
[root@server ~]# docker kill 397d90de57b3
397d90de57b3
# 启动一个容器实例
[root@server ~]# docker run -it centos:latest /bin/bash
# 新开终端
[root@server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21a11864b0ad centos:latest "/bin/bash" 13 seconds ago Up 12 seconds sad_albattani
[root@server ~]# docker stop 21a11864b0ad
21a11864b0ad
[root@server ~]# docker start 21a11864b0ad
21a11864b0ad
[root@server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21a11864b0ad centos:latest "/bin/bash" 56 seconds ago Up 17 seconds sad_albattani
# 进入容器
[root@server ~]# docker exec -it 21a11864b0ad /bin/bash
[root@21a11864b0ad /]#
# 查看所有的容器
[root@server ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21a11864b0ad centos:latest "/bin/bash" 2 hours ago Up 2 hours sad_albattani
3e5930e087a1 centos:latest "/bin/bash -c 'df -h'" 3 hours ago Exited (0) 3 hours ago gracious_aryabhata
# 进入到某个容器
[root@server ~]# docker exec -it 21a11864b0ad /bin/bash
# 删除某个容器
[root@server ~]# docker rm 3e
3e
[root@server ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21a11864b0ad centos:latest "/bin/bash" 3 hours ago Up 3 hours sad_albattani
5.Dockerはイメージを作成します
apacheサービスをインストールします。
[root@21a11864b0ad /]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@21a11864b0ad /]# yum install -y httpd
コンテナの現在の状態を保存するために、現在のコンテナをミラーイメージにすることができます。
Docker Image 的制作两种方法:
#保存container的当前状态到image后,然后生成对应的image【快照】
方法 1:docker commit 容器ID 新镜像名[repository:tag]
[root@server ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21a11864b0ad centos:latest "/bin/bash" 3 hours ago Up 3 hours sad_albattani
[root@server ~]# docker commit 21a11864b0ad centos:httpd
sha256:a1b9cc833f6c02944fdd0a4021179bbe4ce28008ddc46d0d4852e3c9e65991bb
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos httpd a1b9cc833f6c 9 seconds ago 254MB
centos latest 0d120b6ccaa8 8 weeks ago 215MB
#使用Dockerfile文件自动化制作image
方法 2:docker build
方法2の具体的な実現:
1. 创建工作目录和Dockerfile文件
[root@server ~]# mkdir /opt/docker
[root@server ~]# cd /opt/docker/
[root@server docker]# touch Dockerfile
2. 编辑Dockerfile
[root@server docker]# vim Dockerfile
FROM centos:latest # 基于哪个镜像制作镜像
MAINTAINER <[email protected]> # 镜像创建者
RUN yum install -y httpd
ADD start.sh /usr/local/bin/start.sh # 本地文件替换容器内的对应路径中的文件
ADD index.html /var/www/html/index.html
CMD /usr/local/bin/start.sh # 终端执行脚本,一个Dockerfile文件中仅有一个CMD语句,存在多个时最后一个有效。
3. 创建start.sh启动脚本启动apache服务和apache首页index.html文件
root@server docker]# echo "/usr/sbin/httpd" > start.sh
[root@server docker]# chmod a+x start.sh
[root@server docker]# echo "docker image apache" > index.html
4. 使用build命令创建新的镜像
docker build -t 原镜像名[repository:tag] ./
[root@server docker]# docker build -t centos:httpd ./
5. 查看镜像
[root@server docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos httpd 1e0cccb31310 10 seconds ago 254MB
centos latest 0d120b6ccaa8 8 weeks ago 215MB
6.Dockerリリース
ドッカー画像を公開する2つの方法:
①画像をtarballに保存する
docker save -o tar包名 镜像名[repository:tag] # 导出
docker load -i tar包名 #导入
# 导出镜像
[root@server ~]# docker save -o docker-centos-httpd.tar.gz centos:httpd
[root@server ~]# ll docker-centos-httpd.tar.gz
-rw------- 1 root root 262351872 10月 8 13:07 docker-centos-httpd.tar.gz
# 导入镜像
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos httpd 1e0cccb31310 6 minutes ago 254MB
centos latest 0d120b6ccaa8 8 weeks ago 215MB
[root@server ~]# docker rmi centos:httpd
Untagged: centos:httpd
Deleted: sha256:1e0cccb3131058019c071b7c93f69c149482fa9cf1f0332a25b8c6711c4da94a
Deleted: sha256:ac16f03b97984ee900ef5d031f164cfaeaa6cd8dc019ce72cc959dff632501a8
Deleted: sha256:c9abe0f55ae1426a5e07f09cd9dc7ed854fe9811463871408c7c96c23160a4e2
Deleted: sha256:8764928fbf45abca97f14c34ef943767a5c9501f8e4711bd3a14c8e08b319934
Deleted: sha256:6560e60c44efb0f75384dce5c108bbe657268454aed3931f0e65c42f620e2294
Deleted: sha256:6201f9e06a0712f85fb608bcf920f6faaeb90fafa715f5de45e037f7d1e38805
Deleted: sha256:8735743637ddd6750349b5cf46d4e09663979b0f5bf9d25ceda53d865b8f55b0
Deleted: sha256:986b70081cb31f68b2aa7d32129bdb9babbc4ca2f0a55ecae18c7463bedbc206
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0d120b6ccaa8 8 weeks ago 215MB
[root@server ~]# docker load -i docker-centos-httpd.tar.gz
45dcccff5e24: Loading layer 39.97MB/39.97MB
4d2bed0847aa: Loading layer 3.584kB/3.584kB
78d2cfc17a25: Loading layer 3.584kB/3.584kB
Loaded image: centos:httpd
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos httpd 1e0cccb31310 7 minutes ago 254MB
centos latest 0d120b6ccaa8 8 weeks ago 215MB
②画像をDockerハブにプッシュします
1. 注册账号:https://hub.docker.com/
2. 标记本地镜像,将其归入某一仓库。
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos httpd b5c91959b65d About an hour ago 254MB
centos latest 0d120b6ccaa8 8 weeks ago 215MB
[root@server ~]# docker tag centos:httpd abong123/centos:httpd # 为镜像分类,仍为同一镜像。
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
abong123/centos httpd b5c91959b65d About an hour ago 254MB
centos httpd b5c91959b65d About an hour ago 254MB
centos latest 0d120b6ccaa8 8 weeks ago 215MB
3. 登录到docker hub
[root@server ~]# docker login -u abong123 -p123456
4. 上传镜像
[root@server ~]# docker push abong123/centos:httpd
5. 删除centos:httpd镜像
[root@server ~]# docker rmi abong123/centos:httpd
Untagged: abong123/centos:httpd
Untagged: abong123/centos@sha256:64b4e1a73d1bb959e222a6098bf45cec472b23a0b95be779a9f427168b8eb3bb
6. 下载镜像
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos httpd b5c91959b65d 2 hours ago 254MB
centos latest 0d120b6ccaa8 8 weeks ago 215MB
[root@server ~]# docker pull abong123/centos:httpd
httpd: Pulling from abong123/centos
Digest: sha256:64b4e1a73d1bb959e222a6098bf45cec472b23a0b95be779a9f427168b8eb3bb
Status: Downloaded newer image for abong123/centos:httpd
docker.io/abong123/centos:httpd
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
abong123/centos httpd b5c91959b65d 2 hours ago 254MB
centos httpd b5c91959b65d 2 hours ago 254MB
centos latest 0d120b6ccaa8 8 weeks ago 215MB
7.コンテナポートマッピング
コンテナポートマッピングの原理:コンテナを実行するアプリケーションは特定のポート番号を占有し、NATネットワークアドレス変換を介してドッカーサーバー上の未使用のポート番号にマップされ、ドッカーサーバーのアドレスとポート番号にアクセスすることでアクセスできます。コンテナ内のアプリのコンテンツ。
コンテナコンテナを起動し、ポートマッピングを実行します。
# -p 物理机80端口:容器实例的80端口
# 把容器中的80端口号映射到物理机的80端口上,这样可以使得容器中的内容可以外部访问。
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos httpd b5c91959b65d 32 minutes ago 254MB
centos latest 0d120b6ccaa8 8 weeks ago 215MB
[root@server ~]# docker run -it -p 80:80 centos:httpd
[root@f4ad69e99787 /]# netstat -antup |grep 80
bash: netstat: command not found
[root@f4ad69e99787 /]# ifconfig
bash: ifconfig: command not found
[root@f4ad69e99787 /]# yum install net-tools -y # 安装网络软件包
[root@f4ad69e99787 /]# netstat -antup | grep 80
[root@f4ad69e99787 /]# /usr/sbin/httpd
[root@f4ad69e99787 /]# netstat -antup | grep 80 # docker容器要正常监听80端口号
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 29/httpd
[root@f4ad69e99787 /]# vi /etc/httpd/conf/httpd.conf
98 ServerName localhost:80
[root@2531def57c03 /]# exit
exit
[root@server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@server ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f4ad69e99787 centos:httpd "/bin/bash" 8 minutes ago Exited (0) 10 seconds ago xenodochial_chandrasekhar
21a11864b0ad centos:latest "/bin/bash" 13 hours ago Exited (255) About an hour ago sad_albattani
[root@server ~]# docker start f4ad69e99787
f4ad69e99787
[root@server ~]# docker ps # 容器要正常运行
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f4ad69e99787 centos:httpd "/bin/bash" 8 minutes ago Up 2 seconds 0.0.0.0:80->80/tcp xenodochial_chandrasekhar
[root@server ~]# netstat -antup | grep 80 # docker服务器上的80端口号被占用
tcp6 0 0 :::80 :::* LISTEN 27806/docker-proxy
dockerサーバーアドレスにアクセスします。http://192.168.43.178/
あなたは、通常、物理マシンのアドレスを開くことができない場合、あなたは次のことを確認することができます:
①Whetherは、物理マシンの80ポート番号は、ファイアウォールが80ポート番号を開くかどうか、である外部からのアクセスを可能にします。
②実世界のポート80が他のアプリケーションによって占有されているかどうか。
③コンテナの80ポート番号が占有されているかどうか、およびapacheサービスがオンになっているかどうか
④NATネットワーク転送機能がオンになっているかどうかをコマンドでcat /proc/sys/net/ipv4/ip_forward
確認すると、結果は1でオンになります。
⑤船は正常に動作しており、docker ps
表示に使用できます
実行中のコンテナインスタンスを入力します。
# 进入容器
docker exec -it 容器名|容器ID /bin/bash
コンテナのネットワークを表示します。
# 进入容器中,安装net-tools包
[root@d0d20c406c83 ~]# yum install net-tools -y
[root@d0d20c406c83 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)
RX packets 163 bytes 343276 (335.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 124 bytes 8554 (8.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
8.学習経験(1)
docker容器
スタディは镜像(image)
テンプレートと見なすことができ、模板库(docker hub)
そこに保存され拉取(pull)
ます容器实例(container)
。テンプレートライブラリからテンプレートを取得し、そのテンプレートを使用してテンプレートを作成する必要があります。現時点では、このコンテナインスタンスは、アプリケーションまたはサービスの実行に使用するキャリアです。コンテナがあり创建运行(run)
、启动(start)
、停止(stop)
、重启(restart)
、删除(rm)
、查看(ps)
またミラーを作るために使用することができ、ミラーは後で使用するためのライブラリに保存されたテンプレートに公開することができます。コンテナ内の特定のサービスまたはアプリケーションが占めるNAT映射
ポート番号は、外部アクセスのために物理マシンの特定のポート番号に到達できます。