Dockerで不要なの全部消す

Dockerでcontainerやらが色々と散らかった場合に行いたいコマンド

1
docker system prune  

下記のように聞かれます。

1
2
3
4
5
6
>WARNING! This will remove:
> - all stopped containers
> - all networks not used by at least one container
> - all dangling images
> - all dangling build cache
>Are you sure you want to continue? [y/N]

yで全て消されます。

twitter広告やってみた

概要

簡単なホームページを作成し、twitter広告を出してみました。
結果をまとめます。

手順

1.ホームページを作成

ホームページを作成した。
https://doraemon-tools.hashito.biz/

ドラえもんのポケットからランダムな道具が出てくるアプリケーション
取り出した道具はtwitterで共有できるという品物…

2.twitter広告に登録

twitter広告に登録した。
流れは省略するがクレジットカードを登録するだけで行けた。

共有するTweetは別途登録する必要があるので注意が必要。
今回共有したのは下記の様なTweet

1
私はドラえもんのポケットから「自動はなくそとり機」を引き当てました!  https://doraemon-tools.hashito.biz  #doraemontools

今回は1日あたり100円で4日間程度行った。

3.結果

日付 インプレッション ご利用金額 結果 結果レート 結果あたりのコスト
2020/8/28 522 ¥0 26 4.98% ¥0.0001
2020/8/27 2,316 ¥74 86 3.71% ¥0.86
2020/8/26 2,193 ¥100 86 3.92% ¥1.16
2020/8/25 2,195 ¥100 61 2.78% ¥1.64
2020/8/24 2,499 ¥100 42 1.68% ¥2.38
2020/8/23 1,540 ¥100 19 1.23% ¥5.26

うーん、Google広告より圧倒的に安いですね。
表示してもらうだけで結構な価値を感じます…

ただ、Googleはニーズありきで検索しているのでヒットした場合の購買率は高そう…

Dockerで鍵ファイルを環境変数で受け取り、実行時に展開する方法

概要

秘密鍵のフォルダをマウントさせると色々と面倒なので引数化することにした。

手順

1.key ファイルを置換

1
sed -z 's/\n/\\n/g' id_ras

2.dockerファイルに初期値として入力

1
2
3
4
5
6
7
8
FROM ubuntu

ENV key="-----BEGIN OPENSSH PRIVATE KEY-----\n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\n-----END OPENSSH PRIVATE KEY-----\n"
ADD ./run.sh /root/
RUN chmod a+x /root/run.sh && \
mkdir /root/.ssh

CMD [ "/root/run.sh" ]

3.run.shで出力してあげる

1
2
3
4
5
#!/bin/bash

echo $key |sed -z 's/\\n/\n/g' >/root/.ssh/id_ras

sleep 1500

4.ビルドして確認

1
2
3
4
5
docker build -t test .
docker exec -it test /bin/bash

>cd /root/.ssh
>cat id_ras

参考:https://orebibou.com/ja/home/201607/20160714_003/

Docker内の各種コンテナポートを集約するnginx

はじめに

お金が無いため、各種コンテナポートを1つのポートの集約してサポートする方法がないか色々と調べたところ、
nginxでできることがわかったので備忘録です。

手順

  1. ネットワーク構築
  2. ネットワークに接続
  3. nginxを構築
  4. ネットワーク構築

1.新規ネットワークを作成します。

「lb_net」というネットワークに「192.168.0.0/24」を設定しています

docker run -itd --restart=always --name lb -p 8000:80 nginx
docker network create --subnet=192.168.0.0/24 lb_net

2.ネットワークに接続

作成したネットワークにコンテナを紐付けます。
この時に該当のサブネットに紐づく形で固定IPを割り付けましょう。

docker network connect --ip=192.168.0.2 lb_net lb
docker network connect --ip=192.168.0.3 lb_net {target container}

3.nginxを構築

nginxにログインし、設定を修正します。

docker exec -it lb /bin/bash
apt update
apt install nano
nano /etc/nginx/conf.d/default.conf

「/etc/nginx/conf.d/default.conf」というファイルを修正します。
下記は参考になります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
upstream proxy.com{
server 192.168.0.3;
}
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
proxy_pass http://proxy.com;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

「nginx」を再起動します。

nginx -s reload

今回は8000番ポートに紐付いているため、そこにアクセスすれば、ターゲットサーバの80番ポートが確認できると思います。

kubernetesでpotやらserviceを全削除する方法

kubernetesでpotやらserviceを全削除する方法

1
2
3
4
for each in $(kubectl get ns -o jsonpath="{.items[*].metadata.name}" | grep -v kube-system);
do
kubectl delete ns $each
done

特定のnamespaceであればこちらが有効らしい。
個人的には下記をよく使う。

1
kubectl delete daemonsets,replicasets,services,deployments,pods,rc --all

したのコメントにもあるが、イングレスが抜けているっぽい。追加すると下記のような感じ?

1
kubectl delete daemonsets,replicasets,services,deployments,pods,rc,ing --all

https://stackoverflow.com/questions/33509194/command-to-delete-all-pods-in-all-kubernetes-namespaces

hexoにタグやカテゴリを追加

概要

hexoにタグやカテゴリを追加する。

やり方

記事の上部に下記のように記載する。

1
2
3
4
5
6
7
8
9
title: hexoにタグやカテゴリを追加
date: 2020/08/17 6:42:00
categories:
- [カテゴリA]
- [カテゴリA]
tags:
- [タグA]
- [タグB]
- [タグC]

PCのバックアップ

概要

下記のサービスなどを使って、PCのバックアップをする方法

  • GoogleDrive (ファイル)
  • Googleフォト (写真)
  • Amazonフォト (写真)
  • Microsoft Office (シリアルコードを取得しておく)

ファイル

下記のページにアクセスし、ドラッグアンドドロップする
https://drive.google.com/drive/u/0/my-drive

1
2
3
4
もしも、うまく行かない場合はツールも存在します。  
ローカルへインストールし試してみてください
https://www.google.com/intl/ja_ALL/drive/download/
下部の`個人`横のダウンロードをクリックし、ダウンロードしてください。

写真

念の為、2つのサービスを利用してバックアップする。
個人的にはGoogleだと写真が圧縮されてしまうため、Amazonフォトがおすすめです。

Google フォト

下記のページにアクセスし、ドラッグアンドドロップする
https://photos.google.com/

※Googleにログインしていることを前提

Amazon フォト

  1. 下記のページにアクセス
    https://www.amazon.co.jp/b?ie=UTF8&node=5262648051

  2. 右上のサインインをクリック

  3. ドラッグアンドドロップすればアップロードされる。

※失敗する場合は下記を参照してください。
http://sdst01.com/primephotos
※過去にアップロードした画像は再度アップロードできないようです。

Office プロダクトキー

こちらのサイトにもある通り、正規の方法では後半5文字しか分かりません。

https://www.e-soft.net/wp/?p=1323

購入時のCDなどに刻印されていますので、それを探していただければ幸いです。
よろしくおねがいします。