DockerでLinuxシェルコマンドを実行する方法

DockerでLinuxシェルコマンドを実行する方法

Docker でシェル コマンドを実行するには、コマンドの前に sh -c を追加する必要があります。次に例を示します。

docker run ubuntu sh -c 'cat /data/a.txt > b.txt'

そうしないと、命令を正常に解析できません。

補足: [Docker アプリケーション] 指定したスクリプトを docker で実行する (docker 配下の springboot アプリケーションを実行する)

【Dockerアプリケーション】dockerで指定したスクリプトを実行する

以下は、Spring Boot アプリケーションを実行する例です。

1. shスクリプトを実行するためのイメージファイル(テンプレート)を作成する

ドックファイル
vertigomedia/ubuntu-jdk8 より
touch /root/app_start.shを実行します。
echo "#!/bin/bash" > /root/app_start.sh を実行します。
echo "echo 111" を実行します >> /root/app_start.sh
chmod a+x /root/app_start.shを実行します。
ENV TZ「アジア/上海」
ENV APP_FILE /root/app_start.sh
エクスポーズ8889
コマンド $APP_FILE
#ENTRYPOINT ["/bin/sh", "-c", "$APP_FILE"]

2. スクリプトファイル(コンテナ内で実行するスクリプト)を作成する

コンテナ
#!/bin/bash
echo "テスト xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
java -jar -Xms500m -Xmx500m -Dspring.profiles.active=test-docker-1 /root/app.jar

3. 起動スクリプトを作成する(ここでは起動コマンドのみ)

docker run -itd \
 --name テストコンテナ \
 --hostname テストコンテナ \
 --net test_net --ip 170.170.1.199 \
 --volume /root/container.sh:/root/app_start.sh \
 --volume /opt/test-1.0.0-SNAPSHOT.jar:/root/app.jar \
 --privileged=true \
 テスト:123 /bin/bash -c 'sh /root/app_start.sh'

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • 最も包括的な Linux コマンドのコレクション (例付き)
  • Java は Linux (centos) の docker コンテナでコマンド対話コードを実装します (構成ウィザード)
  • よく使われる Linux コマンドの完全なリスト (超包括的)
  • Linuxターミナルでコマンド出力をファイルに保存する方法
  • Linux の役に立たないけど面白いコマンド (コレクション)

<<:  モバイルデバイス上のぼやけた小さなアイコンの問題を解決する方法

>>:  CSS アニメーション プロパティの使用方法とサンプル コード (transition/transform/animation)

推薦する

MySQLマスタースレーブ遅延現象と原理の詳細な分析

1. 現象早朝、オンライン テーブルにインデックスが追加されました。テーブル内のデータ量が大きすぎた...

jsを使用してシンプルな弾幕スクリーンシステムを実装する

この記事では、弾幕効果を実現するためのネイティブjsの具体的なコードを参考までに共有します。具体的な...

HTML の大なり、小なり、スペース、引用符などでよく使用されるエスケープ コードのリスト。

表は以下のとおりです。 HTMLソースコード結果を表示説明する&lt; <未満記号また...

Linux (Ubuntu) での MySQL 5.7.17 のインストールと設定のチュートリアル

序文以前、MySQL 5.6 をインストールしました。3 か月後、開発者から MySQL で JSO...

デジタルテーブル特殊効果を実現するネイティブJS

この記事では、ネイティブ JS で実装されたデジタル時計エフェクトを紹介します。エフェクトは次のとお...

完全なショッピングカートを実装するためのミニプログラム

ミニプログラムは、参考までに完全なショッピングカート[すべて選択/選択解除して金額を計算/加算と減算...

実稼働環境でのNginx高可用性ソリューションの実装プロセスの分析

準備: 192.168.16.128 192.168.16.129 2 台の仮想マシン。 Nginx...

Linux システムで時間を取得して使用する方法

Linux システム時間には 2 種類あります。 (1)暦上の時刻。値は、指定された時刻、1970 ...

mysql+mybatisはストアドプロシージャ+トランザクション+複数同時シリアル番号取得を実装します

データベースストアドプロシージャ`generate_serial_number_by_date` が...

要素に丸い境界線を追加する border-radius メソッド

border-radius:10px; /* すべての角は半径 10px で丸められます*/ bor...

mysql の not equal to null と equal to null の書き方の詳細説明

1. テーブル構造 2. 表データ 3. クエリのteacher_nameフィールドは空にすることは...

CSS 8 目を引く HOVER 効果のサンプル コード

1. エフェクトHTMLを送信する <div id="送信ボタン">...

Vueでjsonpを使用する方法

目次1. はじめに2. インストール3. 使用4. vueファイルの使用1. はじめに最近、手書き入...

Ubuntuがインターネットに接続できない場合の解決策

問題の説明:デスクトップ コンピューターとキャンパス ネットワークを使用して、有線モードでインターネ...

Vue.js ドラッグ可能なテキストボックスコンポーネントの使用方法の詳細な説明

目次コンポーネントの登録コンポーネントの追加ソースコードドラッグ可能なテキスト ボックスでは、ユーザ...