Pacote jar de implantação Dockerfile e pacote jar de implantação docker-compose

1. Pacote jar de implantação do Dockerfile

1. Crie um novo diretório

mkdir pro1
cd pro1
touch Dockerfile

2. Edite o Dockerfile

vim Dockerfile

Do seguinte modo:

# 拉取一个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. Crie a imagem do pacote jar

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

4. Execute o contêiner jar

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

5. Verificação do navegador

http://ip:10002

Dois, pacote jar de implantação docker-compose

1. Crie um novo arquivo

mkdir pro1
cd pro1
touch docker-compose.yml

2. Escreva 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. Crie e execute

cd pro1
docker-compose up -d

4. Ver registros

docker-compose logs dk-pro1_con_pro1_jar_1

5. Outros 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. O contêiner se comunica com o host mysql

Tome o mysql comum como exemplo

  • Primeiramente, duas coisas precisam ser esclarecidas:
  1. No contêiner docker, localhost não se refere ao host local do host, portanto, você não pode acessar o mysql do host por meio de localhost:3306 no contêiner.
  2. Quando o docker está em execução, a rede é estabelecida no docker0 e você pode ver as informações do docker0 verificando o IP do host:
    insira a descrição da imagem aqui
  3. O endereço IP do host na mesma LAN do contêiner geralmente é o primeiro endereço do segmento de endereço IP correspondente a docker0 (como 172.17.0.1). Portanto, o contêiner pode acessar o servidor mysql do host por meio de 172.17.0.1 :3306, modifique mysql O código de conexão é o endereço de docker0.
    == Nota: ==mysql permite acesso 127.0.0.1 por padrão, 172.17.0.1:3306 pode não estar acessível, você precisa definir a autoridade de acesso 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 刷新权限信息

Em quarto lugar, o contêiner se comunica com o host redis

Após consultar o container docker0ip, modifique a configuração do redis.

1. Modifique o arquivo redis.conf

  • O conteúdo é o seguinte:
    (1) bind 127.0.0.1 -::1 é alterado para bind 172.17.0.1 -::1
    (2) o modo protegido é definido como não
    (3) requirepass é definido como a senha 123123

2. Pare o processo atual

ps -ef|grep redis
kill 9 进程id

3. Inicie o redis de acordo com o arquivo de configuração

./redis-server ../redis.conf

Acho que você gosta

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