Docker常用指令以及使用docker容器化部署
常用指令
序号 | 描述 | 指令 |
---|---|---|
1 | 启动docker | systemctl start docker |
2 | 设置docker开机自启 | systemctl enable docker |
3 | 停止docker | systemctl stop docker |
4 | 搜索镜像 | docker search mysq |
5 | 拉取镜像 | docker pull mysql |
6 | 查看所有镜像 | docker images |
7 | 删除镜像 | docker rmi 镜像id |
8 | 删除容器 | docker rm 容器id |
9 | 运行中的容器 | docker ps |
10 | 所有容器 | docker ps -a |
11 | 跟踪容器日志最新500行 | docker logs --tail 500 -f 容器 |
12 | 停止容器 | docker stop 容器 |
13 | 设置容器开启自启 | docker update 容器 --restart=always |
14 | 进入容器 | docker exec -it 容器 bash |
15 | 容器内更改权限 | sudo docker exec -it -u root 容器 bash |
docker如果想更改容器的映射端口,但是重新删除又要重新改配置文件怎么办?
docker commit:把一个容器的文件改动和配置信息commit到一个新的镜像。这个在测试的时候会非常有用,把容器所有的文件改动和配置信息导入成一个新的docker镜像,然后用这个新的镜像重起一个容器,这对之前的容器不会有任何影响。
1:docker stop container01
2:docker commit container01 new_image:tag
3:docker run --name new_image:tag
Docker部署Jar运行
- 上传jar到服务器的指定目录
- 在jar同级目录创建Dockerfile文件
- 将以下内容复制到Dockerfile文件
FROM java:8
MAINTAINER ghl
ADD publishing-0.0.1-SNAPSHOT.jar demo.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","demo.jar","--spring.profiles.active=prod"]
- from java:8 拉取一个jdk为1.8的docker image
- maintainer 作者是bingo
- publishing-0.0.1-SNAPSHOT.jar 就是你上传的jar包,替换为jar包的名称
- demo.jar 将该jar包重新命名为什么名称,在容器中运行
- expose 在容器中以什么端口运行
- entrypoint 容器启动之后执行的命令,java -jar demo.jar 即启动jar --spring.profiles.active=prod使用哪个环境的配置文件
- docker build -t 你要打成的镜像叫什么名字 .
(最后的 . 表示 Dockerfile 文件在当前目录下)
总不能每次发版都docker build
思路。挂载宿主机jar包路径
比如:
1:创建Dockerfile
FROM java:8
MAINTAINER ghl
add bingo-admin.jar /jars/bingo-admin.jar
EXPOSE 28080
ENTRYPOINT ["java","-jar","/jars/bingo-admin.jar"]
2:启动时挂载宿主机的jar。之后需要更新直接docker restar
docker run -d -p 28080:28080 --restart=always --name nuoan \
-v /home/myservice/nuoan/files:/home/bingo/uploadPath \
-v /home/myservice/nuoan/logs:/home/bingo1/logs \
-v /home/myservice/nuoan/jars:/jars \
-e JAVA_OPTS='-server -Xms2048m -Xmx2048m' \
nuoan
docker run -d --restart=always --name demo -p 8080:8080 你的镜像名
java打成容器后时区错误
- 进入容器
- 创建软连接
-`ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime