アイデアドッカーのデプロイメント

给docker开启远程访问
1.修改docker配置文件
[xxx@root]#vi /usr/lib/systemd/system/docker.service
修改
ExecStart=/usr/bin/dockerd
#centos设置:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 
#Ubunt设置:
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

保存退出,这一步是将docker映射到虚拟机2375端口
2.重新加载配置文件
[xxx@root]# systemctl daemon-reload 
3.启动/重启docker 
[xxx@root]# systemctl start/restart docker
4.检验是否安装成功
[xxx@root]# netstat -na|grep 2375或者netstat -anp|grep 2375
显示docker正在监听2375端口

ここに画像の説明を挿入

1 ドッカーが
使用できる接続

2. dockerfile の
例を作成します。 dockerfile はターゲットと同じレベルに配置する必要があることに注意してください。そうしないと
FROM openjdk:8-jre-alpine #The jdk used が見つかりません。

WORKDIR /myapp #名前を付けます

COPY target/snowy-gateway-app.jar /myapp/snowy-gateway-app.jar # ローカルの jar パッケージを Docker にアップロードします

ここに画像の説明を挿入

CMD ["java", "-jar", "/myapp/snowy-gateway-app.jar"] #起動コマンドを実行

jar パッケージは同じディレクトリに配置する必要があります。そうしないと、ターゲットが無視されるため見つかりません。そのため、jar パッケージと dockerfile ファイルを一緒にコピーし、メインの下に新しいフォルダー docker を直接作成できます。

3
Add springboot スタートアップ構成を実行、docker --" dockerfile
名を適当に選択
イメージマークとコンテナ名は同じである必要がある
バインディングポートを追加(ipは書き込めません)

走った直後
ここに画像の説明を挿入

!](https://img-blog.csdnimg.cn/85af42f96d0f4d4d95504662cc44712​​a.png)

![ここに画像の説明を挿入](https://img-blog.csdnimg.cn/486558508dcb4e20bc3936e2d1e3646f.png

ソケット接続を使用する場合は、証明書を構成する必要があります。そうしないと、非常に安全ではありません。

#!/bin/sh
ip=你的服务器IP
password=你的密码
dir=/root/docker/cert # 证书生成位置
validity_period=10    # 证书有效期10年

# 将此shell脚本在安装docker的机器上执行,作用是生成docker远程连接加密证书
if [ ! -d "$dir" ]; then
  echo ""
  echo "$dir , not dir , will create"
  echo ""
  mkdir -p $dir
else
  echo ""
  echo "$dir , dir exist , will delete and create"
  echo ""
  rm -rf $dir
  mkdir -p $dir
fi

cd $dir || exit
# 创建根证书RSA私钥
openssl genrsa -aes256 -passout pass:"$password" -out ca-key.pem 4096
# 创建CA证书
openssl req -new -x509 -days $validity_period -key ca-key.pem -passin pass:"$password" -sha256 -out ca.pem -subj "/C=NL/ST=./L=./O=./CN=$ip"
# 创建服务端私钥
openssl genrsa -out server-key.pem 4096
# 创建服务端签名请求证书文件
openssl req -subj "/CN=$ip" -sha256 -new -key server-key.pem -out server.csr

echo subjectAltName = IP:$ip,IP:0.0.0.0 >>extfile.cnf

echo extendedKeyUsage = serverAuth >>extfile.cnf
# 创建签名生效的服务端证书文件
openssl x509 -req -days $validity_period -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$password" -CAcreateserial -out server-cert.pem -extfile extfile.cnf
# 创建客户端私钥
openssl genrsa -out key.pem 4096
# 创建客户端签名请求证书文件
openssl req -subj '/CN=client' -new -key key.pem -out client.csr

echo extendedKeyUsage = clientAuth >>extfile.cnf

echo extendedKeyUsage = clientAuth >extfile-client.cnf
# 创建签名生效的客户端证书文件
openssl x509 -req -days $validity_period -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$password" -CAcreateserial -out cert.pem -extfile extfile-client.cnf
# 删除多余文件
rm -f -v client.csr server.csr extfile.cnf extfile-client.cnf

chmod -v 0400 ca-key.pem key.pem server-key.pem

chmod -v 0444 ca.pem server-cert.pem cert.pem

スクリプトに権限を与えます
chmod 777 xxx.sh
スクリプトを実行して証明書フォルダーを生成します cert
stop dokcer 構成ファイルを変更します
vim /usr/lib/systemd/system/docker.service

#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock は次のように置き換えられます /www/sshfile/cert は証明書のパスです

ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/www/sshfile/cert/ca.pem --tlscert=/www/sshfile/cert/server-cert.pem --tlskey=/www/sshfile/ cert/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

保存して終了した後、docker
systemctl daemon-reload && systemctl start dockerを再起動します
。起動時にエラーが報告された場合は、ログ コマンド
journalctl -u docker.service
を確認して接続をテストしてください。idea、
tcp: https://ip:を使用してください。 2375
証明書フォルダー: サーバーが生成した証明書をローカルにダウンロードします。

問題:
ENTRYPOINT と CMD は、コンテナーを起動するコマンドを定義する Dockerfile 内のディレクティブです。
ENTRYPOINT ディレクティブは、コンテナーの起動時に実行するコマンドまたはスクリプトを指定するために使用されます。通常、コンテナのメイン プログラムまたはサービスを定義するために使用されます。
ENTRYPOINT ディレクティブが Dockerfile で使用されている場合、docker run コマンドの引数を使用して、コンテナーの実行時に ENTRYPOINT ディレクティブで定義されたコマンドをオーバーライドできます。

設定ファイルの指定方法
ENV SPRING_PROFILES_ACTIVE=prod
ENTRYPOINT ["java", "-jar", "/myapp/course-app.jar"]
#or CMD
CMD ["java", "-jar", "/myapp/コース - app.jar"]

イメージのコマンドパネルに入る方法
docker exec -it イメージ名 /bin/bash

おすすめ

転載: blog.csdn.net/weixin_43051544/article/details/131312783