微服务+Docker---springboot+nginx+mysql

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/byg184244735/article/details/80572189
  1. spring-boot 项目打包到 docker 镜像中运行:

    1. pom文件

        <plugin>
              <groupId>com.spotify</groupId>
              <artifactId>docker-maven-plugin</artifactId>
              <version>0.4.13</version>
              <configuration>
                  <imageName>springio/${project.artifactId}</imageName>
                  <dockerDirectory>src/main/docker</dockerDirectory>
                  <resources>
                      <resource>
                          <targetPath>/</targetPath>
                          <directory>${project.build.directory}</directory>
                          <include>${project.build.finalName}.jar</include>
                      </resource>
                  </resources>
              </configuration>
          </plugin>
      
    2. Dockerfile 基于 jdk8 的 spring-boot 项目运行环境

      FROM frolvlad/alpine-oraclejdk8:slim
      VOLUME /tmp
      ADD com.xxx-0.0.1-SNAPSHOT.jar app.jar
      RUN sh -c 'touch /app.jar'
      ENV JAVA_OPTS=""
      ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
      
    3. 打包命令:mvn clean package -Dmaven.test.skip=true docker:build 或者单独构建,把 jar 包和 dockerfile 放在同一个目录下,运行 docker build -t {springboot/xxx.jar:1.0.0} .,注意后面的点不能少。

  2. ubuntu docker 安装 mysql

    1. docker pull mysql
    2. 启动 mysql 镜像:docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 -d mysql
    3. mysql 远程登陆:mysql -h {ip} -p 3306 -u root -p {password}
    4. 授权远程访问并修改密码:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123456';或者GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'abc123456' WITH GRANT OPTION;
  3. ubuntu docker 安装 nginx:

    1. docker pull nginx
    2. 启动 nginx:docker run -d -v /root/Documents/nginx-assets:/usr/share/nginx/assets -v /etc/docker/nginx/conf.d:/etc/nginx/conf.d -p 80:80 --name webserver nginx(-d 守护模式,-v 挂载数据卷,会同步本地文件夹到 docker 容器中,第二个 -v 是同步 nginx 配置文件, –name 为本次容器启动命名, nginx 为镜像名称,镜像启动后为 webserver)
  4. docker 中运行 web 项目有两种方式。
    1. 安装 ubuntu 镜像,在 ubuntu 上安装 java 镜像
    2. 直接安装 java 镜像
      启动 web 项目命令:docker run -d -v /root/Documents/data/xxx/:/data/xxx/ -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/xxx/myblog:v1
      如果没有必要,尽量不用安装系统镜像,减少复杂度。
  5. docker 常用命令:
    1. docker 启动:Docker quickstart Terminal 直接启动(会启动 Oracle VM VirtualBox 然后启动 docker 系统)
    2. 查看所有镜像:docker images
    3. 查看运行中的容器:docker ps [-a]
    4. 停止某个容器:docker stop {container_id}
    5. 删除所有已停止的容器:docker rm -f $(docker ps -a | grep Exit | awk '{ print $1 }')
    6. 删除某个镜像:docker rmi {image-id}
    7. 查看某个容器启动日志:docker logs {container_id}
    8. 进入运行中的容器: docker exec -it {container_id} bash
    9. 构建镜像:docker build -t {springboot/xxx.jar:1.0.0} .
    10. 查看容器信息:docker inspect {container_id}
    11. 从容器中拷贝文件到宿主机: docker cp {container_id}:{container_path} {host_path}
    12. 停止运行 docker 的虚拟机:docker-machine stop default

加强理解:docker 本身就是一个精简版的 linux 系统,所以能支持直接安装各种镜像,不需要再去安装系统环境。另外 docker 提供了镜像仓库,很方便。

使用阿里云镜像地址加速:https://cr.console.aliyun.com/?spm=5176.1971733.0.2.9XaQr6#/accelerator
修改 docker 镜像存储位置:https://blog.csdn.net/u011248395/article/details/70994088
docker 命令参考:https://docker.rails365.net/chapters/3.html

猜你喜欢

转载自blog.csdn.net/byg184244735/article/details/80572189