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)

推薦する

Docker 大規模プロジェクトのコンテナ化変革

仮想化とコンテナ化は、クラウドベースのプロジェクトでは避けられない 2 つの問題です。仮想化は純粋な...

Jenkins初心者のためのDockerデプロイメントチュートリアルの詳細な説明

この記事では、docker 経由で Jenkins+Maven+SVN+Tomcat をデプロイし、...

MySQLは間違ったパスワードを入力する試行回数を制御します

1. 本番環境でMySQLのデッドロックを監視し、デッドロックの可能性を減らす方法まず、デッドロック...

vue-qr を使用して Vue の QR コードを生成する方法について深く理解する

目次npm ダウンロードステップ(1)輸入(2)vue-qrパラメータ例要約する「QRコード」の英語...

MySQL のロングトランザクション例の詳細な説明

序文: 「MySQL 入門」シリーズの記事は終了しました。今後も引き続き MySQL に焦点を当て、...

Linux スレッド間の同期と排他制御の知識ポイントのまとめ

スレッドが同時に実行される場合、スレッドがリソースを競合してデータの曖昧さが生じるのを防ぐために、重...

Linux で PHP を 5.6 にアップグレードする実用的な方法

1: ターミナルに入ったらPHPのバージョンを確認する php -v出力は次のようになります。 PH...

CSSを使用してAndroidシステムの読み込みアニメーションを実装する

Web には一般的な読み込みアイコンが 2 つあります。1 つは iOS の「菊」、もう 1 つは ...

Bootstrapはカルーセルの効果を実現します

この記事では、カルーセルマップの効果を実現するためのBootstrapの具体的なコードを参考までに共...

docker-compsoe を使用してフロントエンドとバックエンドを分離したプロジェクトをデプロイする方法

事前に言っておくDocker を使用すると非常にシンプルなデプロイメント環境を実現できることは誰もが...

MySQLの遅いクエリ問題の詳細な分析データ送信

例を通して、MySQL のデータ テーブル送信のクエリが遅い問題の解決策を共有しました。最近、コード...

Linuxの簡単な分析でファイアウォールの状態と外部に開いているポートの状態を確認する

1. ファイアウォールの状態を確認するファイアウォールのステータスを確認する systemctl s...

最新のmysql-5.7.21のインストールと設定方法

1. ダウンロードしたMySQLの圧縮パッケージをインストールディレクトリに解凍します。 2. 新し...

Vue は、デスクトップから Web ページにファイルをドラッグするためのサンプル コードを実装します (画像/オーディオ/ビデオを表示できます)

効果使用する場合は、コードとスタイルを自分で最適化してください。画像を表示しない/ビデオとオーディオ...

Docker を使用してスタンドアロン Pulsar とクラスター化された Redis をデプロイする方法 (開発アーティファクト)

目次1. はじめに: 2. ドッカー: 1 カスタムネットワーク2 展開を開始する3 ネットワークを...