一般的なコマンドのコレクションを開発する (Docker、K8s、Linux、Windows など)

一般的なコマンドのコレクションを開発する (Docker、K8s、Linux、Windows など)

1 港湾労働者

詳細を表示: https://blog.csdn.net/weixin_45565886/article/details/130130361

1.1 基本コマンド

①画像の取得、閲覧、削除

docker pull nginx  #下载最新版

镜像名:版本名(标签)

docker pull nginx:1.20.1


docker pull redis  #下载最新
docker pull redis:6.2.4

## 下载来的镜像都在本地
docker images  #查看所有镜像

redis = redis:latest

docker rmi 镜像名:版本号/镜像id

場合:

# 1. 拉取镜像
docker pull nginx:1.20.1

# 2. 查看本地镜像
docker images

②コンテナの実行・閲覧・停止

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

【docker run  设置项   镜像名  】 镜像启动运行的命令(镜像里面默认有的,一般不会写)

# -d:后台运行
# --restart=always: 开机自启
docker run --name=mynginx   -d  --restart=always -p  88:80   nginx

# 查看正在运行的容器
docker ps
# 查看所有
docker ps -a
# 删除停止的容器
docker rm  容器id/名字
docker rm -f mynginx   #强制删除正在运行中的

#停止容器
docker stop 容器id/名字
#再次启动
docker start 容器id/名字

#应用开机自启
docker update 容器id/名字 --restart=always

場合:

# -d    后台启动
# --restart=always 开机自启
# -p 88:80 将宿主机的88端口映射到nginx容器的80端口
# --name=mynginx 指定启动之后的容器名为mynginx
# nginx:1.20.1 启动版本号为1.20.1的nginx
docker run -d --restart=always -p 88:80 --name=mynginx nginx:1.20.1

③容器に入れる

# 进入容器内部修改[有些可能不是bash是sh,需灵活变化]
# -it 表示进入交互页面
#nginx容器可以当做一个小型的linux,然后里面运行了nginx
docker exec -it 容器id /bin/bash

ケース: nginx のデフォルトのホームページを変更する

docker ps,查看正在运行的nginx镜像,获取容器id
docker exec -it bcb /bin/bash,进入nginx交互页面
进入nginx的首页
cd /usr/share/nginx/html
修改首页内容:
echo "this is ziyi's pages, elcomclear > index.html
查看结果:你的ip+映射端口(宿主机的)
退出交互页面
exit

1.2 高度な操作

①コンテナデータを外部にマウントする

docker run --name=mynginx   \
-d  --restart=always \
-p  88:80 -v /data/html:/usr/share/nginx/html:ro  \
nginx

# 修改页面只需要去 主机的 /data/html
# -v 挂载
/*
/data/html:/usr/share/nginx/html:ro
将容器中的/usr/share/nginx/html挂载到宿主机的/data/html目录,ro表示read only只读
nginx代表nginx:latest镜像名
*/

nginxのバージョンを指定する

docker run -d -p 88:80 -v /data/html:/usr/share/nginx/html --restart=always --name=mynginx nginx:1.20.1

② 変更を送信する

コンテナー内のコンテンツを変更した後、それをパッケージ化して他のコンピューターに送信して実行する必要があります。このとき、変更されたイメージを送信する必要があります。

  1. 変更を送信する
# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# -a "ziyi" 指明是谁修改的
# -m "首页变化" 指明做了什么
# 341d81f7504f guignginx:v1.0 指明哪个容器的修改了以及新容器的版本号
docker commit -a "ziyi"  -m "首页变化" 341d81f7504f guignginx:v1.0
  1. 画像を圧縮して転送する
# 将镜像保存成压缩包
docker save -o abc.tar nginx:v1.0

# 可以通过scp命令远程传输到指定服务器的指定文件夹下
# 别的机器加载这个镜像
docker load -i abc.tar

# 离线安装

③リモートハブへプッシュ

  1. dockerhub アカウントに登録してログインします。
# 登录docker hub,输入命令然后输入自己用户名与密码
docker login
  1. ローカルイメージをパッケージ化する
# 打包本地镜像
# 把旧镜像的名字,改成仓库要求的新版名字
docker tag nginx:v1.0 ziyigun/nginx:v1.0

包括的なコマンド:

# 把旧镜像的名字,改成仓库要求的新版名字
docker tag guignginx:v1.0 leifengyang/guignginx:v1.0

# 登录到docker hub
docker login       

docker logout(推送完成镜像后退出)

# 推送
docker push leifengyang/guignginx:v1.0

# 别的机器下载
docker pull leifengyang/guignginx:v1.0

K8 2台

# 查看持续查看workflow的pod日志
kubectl logs workflow-9c6468cb7-f4d6x -n xxx -f --tail=1

# 进入容器内容 -n xxx 指定命名空间
kubectl exec -it -n xxx compression-apk-v1-label-2-66bc688cf4-zgvvr -- sh
# kubectl exec -n ocpf-plugin pod-name -it -- /bin/bash

# -r 支持转义
kubectl logs -n ocpf s3batch-6697bb767f-lr7zx | less -r
# 查询错误,通过/查询包含ERROR
# /ERROR

# 获取xxx命名空间下的deployment【pod、svc同理】
kubectl get deployment -n xxx
# 删除xxx命名空间下名为delpoymentName的deployment【pod、svc同理】
kubectl delete deployment delpoymentName -n xxx

詳細については、https://blog.csdn.net/weixin_45565886/article/details/130698024 を参照してください。

ここに画像の説明を挿入

2.1 基本コマンド

①デプロイメントは、ポッドのライフサイクルを管理するために、ポッド
のラベルに従ってポッドに関連付けられます ②サービスは、ポッドへの外部アクセスを許可し、負荷分散を行うために、ポッドのラベルに従ってポッドに関連付けられますポッド用。

  • 注:
    デプロイメント コントローラーに関連付けられたポッド、ポッドの名前とホスト名 (手動で指定されていない場合) は、デプロイメント コントローラーの名前になります。 StatefulSet コントローラーに関連付けられたポッド、ポッドの名前とホスト名 (手動で指定されていない場合
    ) ) は、StatefulSet コントローラーの名前 + シリアル番号です。

①基本コマンド(ポッド等)

注文 意味
kubectl コンテナ名を実行 --image=コンテナ アドレス: バージョン コマンドでコンテナをデプロイします kubectl run testapp --image=ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1
kubectl apply -f xxx.yaml 構成ファイル経由でデプロイする kubectl apply -f app.yaml
kubectl はポッドのポッド名を説明します ポッドの詳細を表示する kubectl 説明ポッド テスト-k8s-8598bbb8c6-62c8m
kubectl ログ ポッド名 ポッドのログを表示する (-f はログを継続的に表示します) kubectl ログ test-k8s-8598bbb8c6-ngmw9
kubectl exec -it ポッド名 – bash ポッドコンテナの内部を入力します (-c パラメータでどのコンテナに入力するかを指定できます) kubectl exec -it test-k8s-8598bbb8c6-knztk – bash

②展開

設定ファイル:

app.yml:

apiVersion: apps/v1
# 表示类型为Deployment
kind: Deployment
metadata:
  # 部署名字
  name: test-k8s
spec:
  replicas: 5
  # 用来查找关联的 Pod,所有标签都匹配才行
  selector:
    matchLabels:
      app: test-k8s
  # 定义 Pod 相关数据
  template:
    metadata:
      labels:
      	# 标签
        app: test-k8s
    spec:
      # 定义容器,可以多个【这一部分就是上面的单个pod】
      containers:
        - name: test-k8s # 容器名字【需要与labels对应】
          image: ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1 # 镜像[上传到了腾讯云]
注文 意味
kubectl スケール デプロイメント デプロイメント名 --replicas=xx 指定deployment副本数 kubectl スケール デプロイメント net test-k8s --replicas=5
kubectl apply -f xxx.yaml 構成ファイルを変更して再デプロイする レプリカなどのパラメータを変更可能
kubectl port-forward ポッド名ポート:containerPort 外部ポートをコンテナ内にマッピングする kubectl ポートフォワード テスト-k8s-8598bbb8c6-2ff7w 8090:8080
kubectl ロールアウト履歴 デプロイメント デプロイメント名 デプロイメントを以前のバージョンにロールバックする kubectl ロールアウト履歴 デプロイメント test-k8s
kubectl ロールアウト デプロイメントを元に戻す デプロイメント名 --to-revision=2 指定されたバージョンにフォールバックします kubectl ロールアウト デプロイメントを元に戻す test-k8s --to-revision=2
kubectl delete デプロイメント デプロイメント名 デプロイメントの削除 kubectl 削除デプロイメント test-k8s

③サービス

設定ファイル:

サービス.yaml

apiVersion: v1
kind: Service
metadata:
  name: test-k8s
spec:
  selector:
    app: test-k8s
  type: ClusterIP # 默认
  ports:
    - port: 8080        # 本 Service 的端口
      targetPort: 8080  # 容器端口

アプリ構成ファイル:

# 应用配置
kubectl apply -f service.yaml
注文 意味
kubectl は SVC を取得します サービスを見る サービス kubectl は svc test-k8s を取得します
kubectl は svc サービス名を記述します サービスの詳細を見る kubectl は svc test-k8s を記述します

④ステートフルセット

StatefulSet は、データベースなどのステートフル アプリケーションを管理するために使用されます。
上記で展開したアプリケーションは、データを保存したり状態を記憶したりする必要がなく、コピーを自由に拡張でき、各コピーは同じで置き換えることができます。

  • ただし、データベースや Redis などのステートフル オブジェクトは、コピーを自由に拡張できません。
  • StatefulSet は各 Pod の名前を固定しますが、Pod の IP は固定されません

mongo.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mongodb
spec:
  serviceName: mongodb
  replicas: 3
  selector:
    matchLabels:
      app: mongodb
  template:
    metadata:
      labels:
        app: mongodb
    spec:
      containers:
        - name: mongo
          image: mongo:4.4
          # IfNotPresent 仅本地没有镜像时才远程拉,Always 永远都是从远程拉,Never 永远只用本地镜像,本地没有则报错
          imagePullPolicy: IfNotPresent
---
apiVersion: v1
kind: Service
metadata:
  name: mongodb
spec:
  selector:
    app: mongodb
  type: ClusterIP
  # HeadLess
  clusterIP: None
  ports:
    - port: 27017
      targetPort: 27017

⑤コンフィグマップとシークレット

⑥ヘルムと名前空間

2.2 高度なコマンド

3 リナックス

3.1 コードの作成とコンパイル

mkdir myproject
cd myproject
git clone <repository_url>
cd <repository_name>
make
# mkdir myproject:创建一个名为myproject的目录。
# cd myproject:进入myproject目录。
# git clone <repository_url>:从远程仓库克隆代码到当前目录。
# cd <repository_name>:进入克隆的代码仓库目录。
# make:执行Makefile中的编译命令,编译代码。

3.2 依存パッケージのインストールと管理

sudo apt-get update
sudo apt-get install <package_name>
#sudo apt-get update:更新可用的软件包列表。
#sudo apt-get install <package_name>:安装指定的软件包。

3.3 コマンドの実行とデバッグ

./myprogram
gdb myprogram
# ./myprogram:运行名为myprogram的可执行文件。
# gdb myprogram:使用GDB调试器来调试myprogram程序。

3.4 ログと出力の表示

tail -f <log_file>
grep <pattern> <file>
# tail -f <log_file>:实时查看日志文件的最新内容。
# grep <pattern> <file>:在文件中查找匹配指定模式的行。

3.5 バージョン管理とコード管理

git init
git add .
git commit -m "Initial commit"
git push origin master
# git init:初始化一个新的Git仓库。
# git add .:将当前目录下的所有文件添加到Git仓库。
# git commit -m "Initial commit":提交代码更改,并添加提交消息。
# git push origin master:将本地代码推送到远程仓库的master分支。

その他の高度な使い方

# 搜索workflow.log中包含2022的字符,并通过管道符转换到more中
grep "2022" workflow.log | more

4 窓

詳細を表示: https://editor.csdn.net/md/?articleId=127912183

5 その他の開発コンセプト

5.1 F12開発者ツールのプレビューとレスポンスの違い

プレビューとレスポンスの違い

  1. プレビュー:
    ここに画像の説明を挿入
  2. 応答:
    ここに画像の説明を挿入
  • ここでいう書式設定とは、バックグラウンドで送信されるjson、html、cssなどのデータの形式変換を指します。

总结:
①プレビュー手段 (応答プレビュー): Response-preview (フォーマットされた応答リソースの内容)
② 応答手段: (生の応答データ):original-response-data (フォーマットされていない応答リソースの内容)

おすすめ

転載: blog.csdn.net/weixin_45565886/article/details/131251932