docker で golang イメージに基づいて ssh サービスを構築する方法

docker で golang イメージに基づいて ssh サービスを構築する方法

以下は、docker の golang イメージに基づいて ssh サービスを構築するためのコードです。具体的な内容は次のとおりです。

# golang:ee23292e2826 からの最新イメージ
# 著者 メンテナー [email protected]
# Golang環境変数ENV GOPROXY https://goproxy.cn,directを追加します
ENV GO111MODULEオン
# apt-get source を設定 ADD sources.list /etc/apt/
# apt-get source を更新 ssh サービスをインストール ルートパスワードを変更 ssh サービスを設定 ルートのリモートログインを許可 /root/ip.sh に「ssh サービスを有効にする アドレス情報を /root/ip.txt に書き込み、tail -f」と書き込み ip.sh 実行権限を付与 RUN apt-get update \
&& apt-get -y ssh をインストール \
&& echo "root:1" | chpasswd \
&& echo "PermitRootLogin yes" >> /etc/ssh/sshd_config \
&& echo "service ssh start && ip addr | grep global > /root/ip.txt && tail -f /root/ip.txt" > /root/ip.sh \
&& chmod +x /root/ip.sh
# 起動時にENTRYPOINT ["sh","-l"]を実行する
コマンド ["/root/ip.sh"]

-p ホストアドレス:ホストポート:コンテナポート
-v ホストボリューム:コンテナボリューム
docker run -itd -p 2222:22 -v /root/fserver/:/go/src/fserver 4618

PS: CentOS の sshd と golang 環境をベースにした Docker

1. Dockerファイル

#centos7 イメージを centos:centos7 から継承
メンテナー tpythoner [email protected]"
 
#yum install sshd サービス #RUN yum install -y openssh openssh-server openssh-clients
yum install -y openssh-serverを実行します。
 
#sshdを作成する
実行 mkdir /var/run/sshd
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key を実行します。
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key を実行します。
 
#ルートパスワードを設定し、tpythonerユーザーを追加します RUN /bin/echo 'root:mypwd' |chpasswd
useradd tpythonerを実行します
/bin/echo 'tpythoner:mypwd' |chpasswd を実行します。
 
#PAM 制限を解除 RUN /bin/sed -i 's/.*session.*required.*pam_loginuid.so.*/session オプション pam_loginuid.so/g' /etc/pam.d/sshd
/bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local を実行します。
 
#golangをインストールする
#yum install -y wget を実行します
#run wget http://golangtc.com/static/go/go1.4.2.linux-amd64.tar.gz を実行します
#実行 tar zxvf go1.4.2.linux-amd64.tar.gz -C /usr/local/
go1.4.2.linux-amd64.tar.gz /rootを追加します
golang.conf を追加します /root/golang.conf
mv /root/go /usr/local/ を実行します。
#RUN echo "export GOROOT=/usr/local/go" >> /etc/profile
#RUN echo "export GOBIN=$GOROOT/bin" >> /etc/profile
#RUN echo "export PATH=$PATH:$GOBIN" >> /etc/profile
#RUN echo "export GOPATH=/home/golang" >> /etc/profile
実行 cat /root/golang.conf >> /etc/profile
実行 echo "source /etc/profile" >> /root/.bashrc
mkdir -p /home/golang を実行します。
# 開発ポート EXPOSE 22
エクスポーズ80
#sshd サービスを開始 CMD /usr/sbin/sshd -D

2. golang.conf

GOROOT=/usr/local/go をエクスポートします。
エクスポート GOBIN=$GOROOT/bin
エクスポート PATH=$PATH:$GOBIN
GOPATH=/home/golang をエクスポートする

3. go1.4.2.linux-amd64.tar.gzをダウンロードする

http://golangtc.com/static/go/go1.4.2.linux-amd64.tar.gz を取得します。

4. 新しいDockerイメージを作成する

centos:go_sshd を実行します。

5. イメージを実行してコンテナを生成する

docker run -d -p 2222:22 -p 80:80 centos:go_sshd
#警告: リモートホストの識別が変更されました! というメッセージが表示された場合
エコー '' >> ~/.ssh/known_hosts

6. go_sshdコンテナに接続する

ssh [email protected] -p 2222 #ip はコンテナの IP パスワードは Dockerfile にあります: mypwd

golang イメージをベースに docker で ssh サービスを構築する方法については、これで終わりです。docker で ssh サービスを構築する方法については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  CSSの固定位置属性の詳細な説明

>>:  UnityはMySQLに接続し、テーブルデータの実装コードを読み取ります

推薦する

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明以下は私が作成した M...

HTML ベースタグ target=_parent の使用の紹介

<base> タグは、ページ上のすべてのリンクのデフォルトのアドレスまたはデフォルトのタ...

Angular構造ディレクティブモジュールとスタイルの詳細な説明

目次1. 構造指示モジュールforRoot()を書く3. スタイルの定義ドラッグ時の順序を調整するに...

コンパイル、インストールから設定ファイルの説明まで、中国語でnginxの詳細な説明

この記事では、コンパイルとインストールから設定ファイルの説明まで、Nginx について詳しく紹介しま...

データベースのインデックス作成に関する知識ポイントのまとめ。必要な情報はすべてここにあります。

データベースインデックスについては皆さんもよくご存知だと思います。 インデックスは、データベース テ...

マークアップ言語 - タイトル

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Linux C バックグラウンドサービスプログラムの単一プロセス制御の実装

導入通常、バックグラウンド サーバー プログラムには 1 つのプロセスのみが必要ですが、単一のプロセ...

MySQL 5.7 以降のバージョンのダウンロードとインストールのグラフィック チュートリアル

1. ダウンロード1. MySQL公式サイトのダウンロードアドレス: https://downloa...

VMware15/16 VMwareのロックを解除してMacOSをインストールする詳細な手順

VMware バージョン: VMware-workstation-full-16 VMware バー...

MySQLデータベースインデックスの左端一致原則

目次1. 共同インデックスの説明2. ac はインデックスを使用できますか? 3. 考える4. 最左...

JavaScript関数におけるこのポイントの問題の詳細な説明

このキーワードどのオブジェクトが関数を呼び出しますか? また、関数内の this はどのオブジェクト...

Node.js を使用して C# のデータ テーブル エンティティ クラス生成ツールを作成する方法

Microsoft は T4 テンプレートを提供していますが、使用するのが非常に難しいと思います。ス...

同じ日の最初の3つのデータを取得するためのMySQLタイムラインデータ

テーブルデータを作成する テーブル `praise_info` を作成します ( `id` bigi...

Tomcat で静的リソースを処理するチュートリアル

序文Tomcat 内のすべてのリクエストは Servlet によって処理され、静的リソースも例外では...

Linux コマンドを使用してオーディオ形式を変換および結合する方法

FFmpeg flacをインストールする eric@ray:~$ sudo apt install ...