Docker初心者のチート(一目で本当にわかります)

Dockerの基本的な管理

1. Dockerを初めて知る(概要)

1. Dockerとは何ですか?

  • 軽量の「仮想マシン」です
  • Linuxコンテナでアプリケーションを実行するためのオープンソースツール

2、Dockerと仮想マシンの違い

仮想マシン 容器
始まる時間 スロー 速い
容量 大きい 小さい
システム 論理的分離 カーネルに依存します
安全性 強い 弱い

Dockerはミリ秒レベルで開始します

3.Dockerの使用シナリオ

  • パッケージ化されたアプリケーションは展開を簡素化します
  • 基盤となるハードウェアから自由に移行できます
    。例:TencentCloudからAlibabaCloudへのサーバーの移行

2.Dockerのコアコンセプトとインストール方法

(1)Dockerコアコンセプト

鏡像

  • Dockerコンテナエンジンの読み取り専用テンプレート

容器

  • ミラーから作成された実行中のインスタンス

倉庫

  • 画像を一元的に保存する場所

ここに画像の説明を挿入

(2)CentOSにDockerをインストールする2つの方法

  • CURLを使用して、インストール用のDockerインストールスクリプトを取得します
  • YUMリポジトリを使用してDockerをインストールします

3つ目は、Dockerのバージョン19をインストールしてデプロイすることです。

最初にファイアウォールをオフにします

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

1.依存パッケージをインストールします

オンラインソースを使用してインストールする、ここでは、AlibabaCloudのオンラインソースを使用しています

yum install -y yum-utils device-mapper-persistent-data lvm2

ここに画像の説明を挿入

2. AlibabaCloudイメージソースを設定します

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

ここに画像の説明を挿入

3.Docker-CEをインストールします

yum install -y docker-ce
systemctl start docker
systemctl enable docker

ここに画像の説明を挿入

4.ミラーアクセラレーション

画像アクセラレーションを取得する方法がわからない場合は、私のブログAlibabaコンテナ画像アクセラレーションを参照してください。

ここに画像の説明を挿入

この手順を実行した後、イメージをダウンロードするときにスタックすることはありませんが、速度は向上します。

5.ネットワークの最適化

vim /etc/sysctl.conf
#添加 net.ipv4.ip_forward=1

sysctl -p
service network restart
systemctl restart docker

ここに画像の説明を挿入
ここに画像の説明を挿入

4、dockerのいくつかの基本的なコマンド

1.Dockerのバージョンを確認します
docker version

ここに画像の説明を挿入

2.指定されたミラーを見つけます
例如 我要查找nginx的镜像
docker search 关键字

ここに画像の説明を挿入

3.ミラーリストを表示します
docker images 仓库名称[:标签] 

ここに画像の説明を挿入

4.ミラーをダウンロードします
docker pull 仓库名称[:标签]  

ここに画像の説明を挿入
ミラーリストをもう一度表示する

docker images

ここに画像の説明を挿入

5.ミラーを削除します
docker rmi 仓库名称[:标签]  ## 删除nginx镜像
或
docker rmi 镜像ID号

ここに画像の説明を挿入
IDミラー番号を使用して削除することもできます
ここに画像の説明を挿入

6.タグを追加します
docker  tag 名称[:标签] 新名称[:新标签]

ここに画像の説明を挿入

7.表示
docker images | grep nginx

grepで検索して表示できます
ここに画像の説明を挿入

8.123という名前の保存されたイメージが現在のディレクトリに存在します
docker save -o 123 nginx:latest

ここに画像の説明を挿入

9.画像をロードします
方法一:docker load < abcx
方法二: docker --input abc

ここに画像の説明を挿入

5、コンテナコマンド

1.コンテナの作成、コンテナの表示
docker create  [选项]镜像运行的程序

-i  让容器的标准输入保持打开
-t  让Docker分配一个伪终端

最初にここからダウンロードしてくださいcentos7カーネルミラーリングの便利な例、カーネルミラーは200メガバイト未満です

ここに画像の説明を挿入
ここに画像の説明を挿入

docker ps  ## 查看运行中的容器
docker ps -a  查看全部容器

-a 列出所有的容器,包括未运行的容器

ここに画像の説明を挿入

コマンドを実行

ミラーリングなしから実行中のコンテナーの生成まで、3つのステップがあります

1.イメージをダウンロードします
2.コンテナを作成します
3.コンテナを起動します

しかし、実稼働環境では、
runコマンドを実行するのはどれほど便利で、スリーインワンに
なるのでrunmoreを使用します。

例えば:

docker run -d nginx /bin/bash

-d 是daemon 开启守护进程,这里不加-d是开启不了容器的

ここに画像の説明を挿入

#简单操作
docker run 镜像标识|镜像名称[:tag]
#常用参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像标识|镜像名称[:tag]
选项:
-d:后台运行容器
-p:宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
--name 容器名称:指定容器的名称 
--it 使用交互方式运行,进入容器查看内容
-P:指定容器端口
-p:随机指定端口

例:docker run --name mynginx -p 80:80 nginx        #操作台运行
    docker run -di --name mynginx -p 80:80 nginx    #后台运行
2.コンテナを実行して起動します
#简单操作
docker run 镜像标识|镜像名称[:tag]
#常用参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像标识|镜像名称[:tag]
选项:
-d:后台运行容器
-p:宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
--name 容器名称:指定容器的名称 
--it 使用交互方式运行,进入容器查看内容
-P:指定容器端口
-p:随机指定端口

例:docker run --name mynginx -p 80:80 nginx        #操作台运行
    docker run -di --name mynginx -p 80:80 nginx    #后台运行
3.実行中のコンテナーを表示します
docker ps 
选项:
-f:过滤    
-a:查看全部的容器,包括没有运行的
-q:只查看容器的标识
-n=?:显示最近创建的容器
-l:查看最后创建的容器

例:docker ps -f status=exited  #过滤已经存在但停止的容器
    docker ps -n 5   #列出最近创建的n个容器
4.コンテナに入れます
docker exec -it 容器id/容器名称 /bin/bash		
docker attach 容器id

区别:
docker exec:进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach:进入容器正在执行的终端,不会启动新的进程
5.コンテナを削除します(コンテナを削除する前に、コンテナを停止する必要があります)
docker stop 容器id								   #停止指定的容器
docker stop $(docker ps -qa)					   #停止全部容器

docker rm 容器名/容器id						       #删除指定的容器,删除前该容器需要停止
docker rm $(docker ps -qa)						   #删除状态不是up外的所有容器
docker ps -a | awk '{print "docker rm "$1}'|bash   #删除状态不是up外的所有容器
6.コンテナを起動します
docker start 容器id/容器名称
7.コンテナを終了します
exit			#直接容器停止并退出
Ctrl+P+Q		#容器不停止退出
8.コンテナのエクスポート
docker export  f0d1777bd2a3 > /opt/nginx_c
ls /opt/nginx_c

ここに画像の説明を挿入

9、コンテナのインポ​​ート
cat nginx_c | docker import - nginx:web

ここに画像の説明を挿入

6、民間倉庫の設立

DockerHubには、多くの公式ミラーと個人がアップロードしたミラーが用意されています。機関や個人が提供したミラーをダウンロードしたり、独自のローカルミラーをアップロードしたりできますが、欠点は次のとおりです。

  • ネットワーク上の理由により、DockerHubからのイメージのダウンロードとアップロードの速度が遅い場合があります。
  • 本番環境で使用されるDockerイメージには、コードや構成情報などが含まれている可能性があり、部外者に取得されたくない場合があります。ダウンロードできるのはイントラネット上の開発者のみです。

上記の問題を解決するために、Dockerはローカルのプライベートウェアハウスを構築するためのレジストリと呼ばれるミラーを公式に提供しています。内部ネットワーク上に構築されたDockerプライベートウェアハウスは、内部ネットワーク担当者のダウンロードとアップロードを非常に高速にすることができ、外部ネットワークの帯域幅などの要因の影響を受けません。同時に、内部ネットワークにいない人はダウンロードできません。私たちのイメージ、およびプライベートウェアハウスは、構成ウェアハウス認証機能もサポートしています。次に、レジストリプライベートウェアハウスを設定するプロセスについて詳しく説明します。

1.パブリックリポジトリからレジストリイメージをダウンロードします

从公有仓库下载registry镜像
docker pull registry

2.構成を変更します

demo.jsonファイルを変更します。

vi /etc/docker/daemon.json

添加以下内容,用于让Docker信任私有仓库地址,保存退出。
{
    
    
......
"insecure-registries": ["192.168.168.11:5000"]
}

ここに画像の説明を挿入
Dockerサービスを再起動します

#重新启动docker
systemctl restart docker
systemctl status docker  #查看docker状态

3.プライベート倉庫を設立する

# docker create -it registry /bin/bash
# docker ps -a
# docker start 73f639d806c1
# #宿主机的/data/registry自动创建挂载容器中的/tmp/registry
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry  
#更改标记为192.168.182.11:5000/nginx
docker tag nginx:latest 192.168.182.11:5000/nginx  

ここに画像の説明を挿入

ここに画像の説明を挿入

# 将nginx镜像上传到私有仓库
docker push 192.168.168.11:5000/nginx
# 获取私有仓库列表
curl -XGET http://192.168.126.70:5000/v2/_catalog

ここに画像の説明を挿入

7、Dockerデータボリューム

首先下载一个centos的内核镜像用于实验
docker pull centos:7
# 宿主机目录/var/www挂载容器中的/data1
docker run -v /var/www:/data1 --name web1 -it centos:7 /bin/bash

ここに画像の説明を挿入

8.データボリュームコンテナ

# 数据卷容器
docker run --name web2 -v /data1 -v /data2 -it centos:7/bin/bash

ここに画像の説明を挿入

# 新容器挂载数据卷容器web2
docker run -it --volumes-from web2 --name web3 centos:7 /bin/bash

ここに画像の説明を挿入

9、ポートマッピング

ポートマッピングは、部外者による直接アクセスを容易にするためのものです

docker run -d -P nginx:latest   #-P 随机映射端口

ここに画像の説明を挿入
ここに画像の説明を挿入

docker run -d -P 14777:80 nginx:latest  # -p指定映射端口

ここに画像の説明を挿入

10、コンテナの相互接続

コンテナの相互接続:2つのコンテナ間の通信を指します。他のコンテナの名前にアクセスして、他のコンテナと通信できます。

docker run -itd -P --name web11 centos:7 /bin/bash
#创建并运行容器取名web11,端口号自动映射

docker run -itd -P --name web22 --link web11:web11 centos:7 /bin/bash
#创建并运行容器取名web2,链接到web11和其通信进web22容器
# link 就是连接 前面的web11是容器名称 后面的web11是别名可以自己随便取
docker exec -it c0a29e12b5da /bin/bash 进入web22容器
ping web11

ここに画像の説明を挿入
web22コンテナに入り、web11にpingを実行して、ネットワーク接続が正常かどうかを確認します

ここに画像の説明を挿入

総括する

1、镜像上传(push) / 下载(pull) / 打标签(tag) / 删除(rmi) / 导出(save -o) / 导入(load)
2、容器创建(create) / 进入(exec) / 运行(run) / 删除(rm) / 导出(export) / 导入(import)
   数据卷(-v) / 数据卷容器(--volumes-from) / 链接容器(--link) / 暴露端口(随机:-P 指定:-p)
3、仓库下载registry镜像-->运行容器暴露端口5000---->修改daemon.json文件---->重启docker----->打标签(IP: 端口/名称)--->上传/下载

おすすめ

転載: blog.csdn.net/panrenjun/article/details/115082359
おすすめ