implementación de la ventana acoplable de ideas

给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端口

inserte la descripción de la imagen aquí

1 Conectar ventana acoplable
puede usar

2. Escriba un
ejemplo de dockerfile: tenga en cuenta que el dockerfile debe colocarse en el mismo nivel que el destino; de lo contrario, no se encontrará
DESDE openjdk:8-jre-alpine #El jdk utilizado

WORKDIR /myapp #tomar un nombre

COPY target/snowy-gateway-app.jar /myapp/snowy-gateway-app.jar # Cargue el paquete jar local en la ventana acoplable

inserte la descripción de la imagen aquí

CMD ["java", "-jar", "/myapp/snowy-gateway-app.jar"] #Ejecute el comando de inicio

El paquete jar debe colocarse en el mismo directorio; de lo contrario, no se encontrará, porque se ignorará el destino, por lo que puede copiar el paquete jar y el archivo dockerfile juntos, puede crear directamente una nueva carpeta acoplable debajo de la ventana principal

3 Ejecute
Add springboot startup configuration, select docker --" dockerfile
name casualmente
La marca de imagen y el nombre del contenedor deben ser iguales
Agregue el puerto de enlace (no se puede escribir ip)

Justo después de correr
inserte la descripción de la imagen aquí

!](https://img-blog.csdnimg.cn/85af42f96d0f4d4d95504662cc44712a.png)

![Insertar descripción de la imagen aquí](https://img-blog.csdnimg.cn/486558508dcb4e20bc3936e2d1e3646f.png

Si usa una conexión de socket, debe configurar un certificado, de lo contrario es muy inseguro

#!/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

Otorgue permiso al script
chmod 777 xxx.sh
ejecute el script para generar la carpeta del certificado cert
stop dokcer modifique el archivo de configuración
vim /usr/lib/systemd/system/docker.service

#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock se reemplaza por lo siguiente /www/sshfile/cert es la ruta del certificado

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

Después de guardar y salir, reinicie docker
systemctl daemon-reload && systemctl start docker
Si se informa un error al inicio, verifique el comando de registro
journalctl -u docker.service
para probar la conexión, use idea,
tcp: https://ip: Carpeta del certificado 2375
: el servidor generado Descargar el certificado localmente

Problema:
ENTRYPOINT y CMD son directivas en un Dockerfile que definen el comando para iniciar un contenedor.
La directiva ENTRYPOINT se usa para especificar un comando o script para ejecutar cuando se inicia el contenedor. Suele utilizarse para definir el programa o servicio principal del contenedor.
Si se usa la directiva ENTRYPOINT en Dockerfile, los argumentos del comando docker run se pueden usar para anular los comandos definidos en la directiva ENTRYPOINT al ejecutar el contenedor.

Cómo especificar el archivo de configuración
ENV SPRING_PROFILES_ACTIVE=prod
ENTRYPOINT ["java", "-jar", "/myapp/course-app.jar"]
#o CMD
CMD ["java", "-jar", "/myapp/ curso- app.jar"]

Cómo ingresar al panel de comando de la imagen
docker exec -it image name /bin/bash

Supongo que te gusta

Origin blog.csdn.net/weixin_43051544/article/details/131312783
Recomendado
Clasificación