またまた、OCI ネタですよ
今度は、みなさん大好き、コンテナです。
要するに、Dockerですね。
今回は、OCI コンテナに、Proxyサーバーを構築してみます。
なんでって、意味なんかありませんから
ついでに、格安で構築したいので、ampere(Arm)で構築してみますよ。
まずは、作業用PCが要りますよね。
しかも、Armです。
RaspberryPIでも良いんですが、OCI 使ってるんだし、OCI のインスタンスを構築して下さいよ。
それで、適当にDocker環境を構築して下さい。
じゃー開始です。
まず、Dockerfileとdocker-compose.ymlを作成して作業用コンテナを構築します。
コンテナは、squidsvr2としましょう。
mkdir squidsvr2
cd squidsvr2
FROM ubuntuRUN bashversion: "3"services: main: build: context: . command: bash hostname: squidsvr tty: truedocker compose up -ddocker exec -it squidsvr2-main-1 bashapt updateapt upgrade -yapt install net-tools iputils-ping traceroute dnsutils vim tzdata squid -yecho "http_access allow localnet" >> /etc/squid/conf.d/debian.conf/root/start.sh
#!/bin/bash
# safty Exitfunction exit_script(){ echo "Caught SIGTERM" /etc/init.d/squid stop exit 0}trap exit_script SIGTERM
/etc/init.d/squid start
while [ 1 ]do /usr/bin/sleep 5 STATUSSTR=`/etc/init.d/squid status | grep running` if [ ! -n "$STATUSSTR" ]; then break fidone
起動可能にします。
chmod a+x /root/start.sh
exitして、コンテナに保存です。
docker commit squidsvr2-main-1 squidsvr2-maindocker compose downFROM squidsvr2-mainENTRYPOINT [ "/root/start.sh" ]EXPOSE 3128/tcpversion: "3"services: main: build: context: . ports: - "0.0.0.0:3128:3128" command: /root/start.sh hostname: squidsvr tty: truedocker compose up -ddocker compose downさて、ここからは、OCIのコンテナ・レジストリを構築しましょう。
レジストリの作成
パブリックかプライベート
※プライベートの場合、kubectl create secret docker-registry で、シークレットを登録し、yaml定義に、imagePullSecrets: を指定する必要があります。
リボジトリ名を squidsvr2 で構築します。
次にリポジトリアクセス用の認証トークンを作成します。
自分のプロファイルから認証トークンを選択して作成します。
すると、謎の文字列を生成してくれるので、記録して下さい。
さっ、Dockerに戻ります。
リポジトリにログインします。 サンプルは、大阪リージョンですよ。
サーバーアドレスは、ここに載ってます。
docker login kix.ocir.io
認証するんですが、ユーザー名の前にネームスペースを付けないとダメなんですね。
ネームスペースって何っと思うでしょ。テナンシに割りついている謎の文字列のことです。
テナンシ詳細画面から、オブジェクト・ストレージ・ネームスペースってとこに書かれているので、記録して下さい。
ということで、認証は、以下です。
User:ネームスペース/ユーザー名
Pass:認証トークン
無事認証すると、イメージを構築しリポジトリにプッシュします。
docker image build -t kix.ocir.io/ネームスペース/squidsvr2:1.0 .
docker push kix.ocir.io/ネームスペース/squidsvr2:1.0
ご苦労様でしたって、とこなんですが、まだ、このイメージを実行するやつを構築しなとダメですよね。
コンテナ・インスタンスを構築しましょう。
VNCとサブネット、ルート表とかってのは、先に構築しておいて下さいね。
シェイプをAmpereにして下さいね。
1CPU 1Gメモリでも動作するので、適当に
後は、作ったコンテナを選択して、どーーーーんです。
あっ テストしましょう
hostip="コンテナインスタンスのIPアドレス"proxy="${hostip}:3128"export http_proxy="http://$proxy"export https_proxy=$http_proxyexport ftp_proxy=$http_proxyexport no_proxy="127.0.0.1, localhost, url"curl www.google.com --head





