Paquete jar de implementación de Dockerfile y paquete jar de implementación de docker-compose

1. Paquete jar de implementación de Dockerfile

1. Crear un nuevo directorio

mkdir pro1
cd pro1
touch Dockerfile

2. Editar archivo acoplable

vim Dockerfile

Como sigue:

# 拉取一个jdk为1.8的docker镜像
FROM java:8
# 声明作者是haoke
MAINTAINER haoke
# 前一个 pro1.jar  为上传的jar包,后一个 dk-pro1.jar 是将服务器中jar包对应在容器中运行的jar包名称
ADD pro1.jar  dk-pro1.jar
# 容器暴露的端口号,需要与jar包在容器中运行使用端口号一致
EXPOSE 10002
# 容器启动之后执行的命令, java -jar  dk-pro1.jar
ENTRYPOINT ["java","-jar"," dk-pro1.jar"]

3. Cree la imagen del paquete jar

docker build -f Dockerfile -t dk-pro1:v1.0 .

4. Ejecute el contenedor jar

docker run -d --name con_pro1_jar -p 10002:10002 dk-pro1:v1.0

5. Verificación del navegador

http://ip:10002

Dos, paquete jar de implementación docker-compose

1. Crear un nuevo archivo

mkdir pro1
cd pro1
touch docker-compose.yml

2. Escriba docker-compose.yml

version: '3'

# 关于网络,如果用到mysql或者redis,并且希望在同一个网络,那么就可以直接使用同一个网络名
# docker network create pro1_bridge
networks:
  pro1_bridge:
    driver: bridge

services:
   dk-pro1:
	 #Compose的容器名称格式是:<项目名称><服务名称><序号>
	 #可以自定义项目名称、服务名称,但如果想完全控制容器的命名,可以使用标签指定:
     container_name: con_pro1_jar
	 #image是指定服务的镜像名称或镜像ID。如果镜像在本地不存在,Compose将会尝试拉取镜像。
     image: dk-pro1:v1.0
     restart: always
	 #ports用于映射端口的标签。使用HOST:CONTAINER格式或者只是指定容器的端口,宿主机会随机映射端口。
     ports:
       - 10002:10002
     networks:
       - pro1_bridge

3. Crea y ejecuta

cd pro1
docker-compose up -d

4. Ver registros

docker-compose logs dk-pro1_con_pro1_jar_1

5. Otros comandos

docker-compose up -d nginx                     构建建启动nignx容器

docker-compose exec nginx bash            登录到nginx容器中

docker-compose down                              删除所有nginx容器,镜像

docker-compose ps                                   显示所有容器

docker-compose restart nginx                   重新启动nginx容器

docker-compose run --no-deps --rm php-fpm php -v  在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器

docker-compose build nginx                     构建镜像 。        

docker-compose build --no-cache nginx   不带缓存的构建。

docker-compose logs  nginx                     查看nginx的日志 

docker-compose logs -f nginx                   查看nginx的实时日志

 

docker-compose config  -q                        验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。 

docker-compose events --json nginx       以json的形式输出nginx的docker日志

docker-compose pause nginx                 暂停nignx容器

docker-compose unpause nginx             恢复ningx容器

docker-compose rm nginx                       删除容器(删除前必须关闭容器)

docker-compose stop nginx                    停止nignx容器

docker-compose start nginx                    启动nignx容器

3. El contenedor se comunica con el host mysql

Tome mysql común como ejemplo

  • Primero hay que aclarar dos cosas:
  1. En el contenedor docker, localhost no hace referencia al host local del host, por lo que no puede acceder al mysql del host a través de localhost:3306 en el contenedor.
  2. Cuando docker se está ejecutando, la red se establece en docker0 y puede ver la información de docker0 al verificar la IP del host:
    inserte la descripción de la imagen aquí
  3. La dirección IP del host en la misma LAN que el contenedor es generalmente la primera dirección del segmento de dirección IP correspondiente a docker0 (como 172.17.0.1) Por lo tanto, el contenedor puede acceder al servidor mysql del host a través de 172.17.0.1 :3306, modificar mysql El código de conexión es la dirección de docker0.
    == Nota: ==mysql permite el acceso 127.0.0.1 de forma predeterminada, 172.17.0.1:3306 puede no ser accesible, debe configurar la autoridad de acceso de mysql
# 登录mysql
mysql -u -p

 # @后写%为所有ip,
 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678' WITH GRANT OPTION;
 
 # @后写具体ip
 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.17.0.1' IDENTIFIED BY '12345678' WITH GRANT OPTION;   
 
 # @前可以指定数据库dk
 mysql>GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
 
 # grant后一定要执行刷新权限
 mysql>flush privileges;
 
#其中各字符的含义:
#*.* 对任意数据库任意表有效
#"root" "12345678" 是数据库用户名和密码
# '%' 允许访问数据库的IP地址,%意思是任意IP,也可以指定IP
# flush privileges 刷新权限信息

Cuarto, el contenedor se comunica con el host redis

Después de consultar el contenedor docker0ip, modifique la configuración de redis.

1. Modifique el archivo redis.conf

  • El contenido es el siguiente:
    (1) bind 127.0.0.1 -::1 se cambia a bind 172.17.0.1 -::1
    (2) el modo protegido se establece en no
    (3) requirepass se establece en la contraseña 123123

2. Detener el proceso actual

ps -ef|grep redis
kill 9 进程id

3. Inicie redis de acuerdo con el archivo de configuración

./redis-server ../redis.conf

Supongo que te gusta

Origin blog.csdn.net/weixin_43676010/article/details/128136458
Recomendado
Clasificación