1.项目打jar包,pom文件中添加配置,如下
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${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.编写Dokerfile文件,示例
FROM java:8
VOLUME /tmp
ADD pay-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT [“java”,"-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
3.上传服务器到同一个目录app
4.在app目录,创建镜像:docker build -t myapp .
执行命令, 看好,最后面有个 . 点!
查看镜像:docker images
5.指定端口运行:docker run -d -p 8051:8021 myapp
-d参数是让容器后台运行
-p 是做端口映射,此时将服务器中的8081端口映射到容器中的8080端口
6.查看容器运行:docker ps -a
易错点:
1.pull access denied for jdk1.8, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied
Dockerfile 文件编写错误,参考示例;
2.项目启动空白页 —> 启动类必须放在包目录最外层
常用命令:
1.进入容器
docker exec -it 688e83c55129 bash
2.从容器复制文件到主机
docker cp 688e83c55129:/test/test.txt /opt/software/temp/test/
复制文件到容器内部
docker cp /opt/software/temp/test/test.txt 688e83c55129:/test/
3.查看容器所有id(正在运行的容器)
docker ps -a
4.查看容器启动日志
docker logs 参数 容器id
docker logs -f --tail=200 xxxx
5.创建容器并指定启动端口配置文件,启动容器
docker run -d --name redis -p 6379:6379 -v /redis/conf/redis.conf:/etc/redis/redis.conf -v /redis/data:/data redis:5.0.5 redis-server /etc/redis/redis.conf --appendonly yes
补充:
1.查看文件某行内容
sed -n 80,90p redis.conf
2.修改某一行内容
sed -ie ‘s/protected-mode no/protected-mode yes/g’ redis.conf
3.查看redis 版本信息
info
4.查看空间占用 df -h
查看CPU内存占用 top
– 查看mysql 版本
select version();
– 查看数据库空间占用
SELECT (sum(DATA_LENGTH)+sum(INDEX_LENGTH))/1024/1024/1024 GB FROM information_schema.TABLES where TABLE_SCHEMA=‘bendian’;
5.查看文件大小
ls -lh 或者 ll -h
6.txt文件换行符:正则匹配(editplus) + \r\n