docker部署web项目,idea dbug调试docker,docker常用命令

一docker部署web项目(以tomcat为例)

1、下载安装docker

yum install -y epel-release

yum install docker-io

# 安装

docker chkconfig docker on

# 加入开机启动 service docker start # 启动docker服务

2、查找tomcat信息

docker search tomcat

3、安装tomcat

docker pull docker.io/tomcat

4、 查看镜像

docker images

5、启动镜像tomcat

docker run -d -p 8081:8080 docker.io/tomcat    #后台运行绑定端口

6、访问tomcat

ip:8081

7、查看进程

docker ps

8、部署war到tomcat

docker exec -it CONTAINER_ID /bin/bash #中间那个是容器id(CONTAINER_ID)

9、拷贝war到容器

①docker cp demo.war id :/usr/local/tomcat/webapps #docker或容器重启之后war失效

②采用挂载方式启动(测试推荐)

docker run -d -v /tmp/war/Demo.war:/usr/local/tomcat/webapps/demo.war -p 8080:8080 docker.io/tomcat  

③重新生成带war的镜像(官方生产推荐)

Dockerfile

from docker.io/tomcat:latest    #你的 tomcat的镜像
COPY demo.war   /usr/local/tomcat/webapps  #放置到tomcat的webapps目录下

生成新镜像

docker build -t demo1 .

启动镜像

docker run -p 8080:8080 demo1

二、docker调式(idea、springboot)

1、准备docker(开启远程访问)

Docker 安装成功之后,我们首先需要修改 Docker 配置,开启允许远程访问 Docker 的功能,开启方式很简单,修改 

/usr/lib/systemd/system/docker.service 文件,加入如下内容:

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

2、查看idea是否有docker插件没有自行下载

3、准备项目:

 接下来我们来创建一个简单的 Spring Boot 项目(只需要引入 spring-boot-starter-web 依赖即可),项目创建成功之后,我们再创建一个普通的 testController,用来做测试,如下:

@RestController
public class TestController {
    @GetMapping("/hello")
    public String getName(){
        System.out.println("开始访问");
        System.out.println("访问docker");
        System.out.println("开始访问hello world");
        return "hello world";
    }
}

springboot pom依赖(注意新加maven插件):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.docker</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <packaging>jar</packaging>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <skipTests>true</skipTests>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.0</version>
                <executions>
                    <execution>
                        <id>build-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <dockerHost>http://192.168.177.80:2375</dockerHost>
                    <imageName>${project.artifactId}</imageName>
                    <imageTags>
                        <imageTag>${project.version}</imageTag>
                    </imageTags>
                    <forceTags>true</forceTags>
                    <dockerDirectory>${project.basedir}</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

 

4、配置Dockerfile

文件内容如下:

FROM java:8
VOLUME /tmp
ADD target/demo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 9000
EXPOSE 5050
ENTRYPOINT ["java","-jar","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5050","-Dspring.profiles.active=sit","app.jar"]

5、打包运行:

接下来对项目进行打包,打包完成后,项目会自动构建成一个镜像,并且上传到 Docker 容器中,打包方式如下:

项目打包成功之后,我们就可以在 Docker 容器中看到我们刚刚打包成的镜像了,如下:

 

6、运行

7、idea运行debug

配置好idea Remote 直接运行就可以debug

三、docker 常用命令:

docker容器生命周期管理

docker run  在一个新的容器执行一个命令

docker start 开一个或者更多已经停止的容器

docker stop 停止一个运行的容器

docker restart 重新开始一个运行的容器

docker kill 杀死一个运行的容器

docker rm 删除一个或更多的容器

docker pause 暂停一个容器的所有进程

docker unpaunse 恢复一个容器的所有进程

docker容器操作运维

docker ps 列出容器

docker inspect 列出关于容器或镜像的底层信息

docker top 显示一个容器运行的进程

docker attach 附上一个运行的容器

docker events 得到实时的来自服务的事件

docker log 获得一个容器的日志

docker wait 阻塞直到一个容器停止,然后打印它的退出代码

docker export 导出一个容器的文件系统作为一个tar文件

docker port 列出容器映射的端口

docker版本管理

docker commit 创建一个新的镜像从一个容器

docker cp 从容器复制一个文件或目录到本地目录或标准输出

docker diff 展示一个容器文件系统的变化

docker镜像仓库

docker login 登入仓库

docker pull 拉取镜像

docker push 推送镜像

docker search 搜索镜像

docker本地镜像管理

docker images 列出本地的镜像

docker rmi 删除本地的镜像

docker tag 打标签本地的镜像

docker build 通过Dockerfile构建本地的镜像

docker histroy 列出镜像的历史

docker save 保存本地的镜像为一个tar文件

docker import 通过tar导入镜像

docker load 加载tar镜像

docker其它命令

docker info

docker version

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值