docker version # 查看Docker版本信息
systemctl start docker # 启动 docker 服务:
systemctl stop docker # 停止 docker 服务:
systemctl status docker # 查看 docker 服务状态
systemctl restart docker # 重启 docker 服务
************************ 批量命令处理 ************************
docker start $(docker ps -a -q) # 启动所有容器
docker stop $(docker ps -a -q) # stop停止所有容器
docker rm $(docker ps -a -q) # remove删除所有容器
docker rm $(docker ps -aq) # 删除所有未运行的容器
docker ps -aq --filter "name=myapp" | xargs docker stop # 停止所有名字包含myapp的容器
docker ps -aq --filter "name!=myapp" | xargs docker stop # 停止除了特定容器之外的所有容器
docker ps -a | grep myapp | awk '{print $1}' | xargs docker rm -f # 删除指定包含的批量容器
docker rmi $(docker images -q) # 删除所有镜像
docker image prune -a # 删除掉未被使用的镜像
# 删除指定仓库的镜像(删除所有"mall/*"仓库镜像)可以如下使用:
docker images -q --filter=reference="mall/*:*" | xargs docker rmi
docker images --filter "dangling=true" # 列出所有“none”镜像
docker images -f "dangling=true" # 列出所有“none”镜像
# 列出所有“none”镜像(ID、仓库名称、标签和镜像大小)
docker images --filter "dangling=true" --format "{{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}"
# docker 删除tag为none的docker镜像
方法1:docker rmi $(docker images | grep "none" | awk '{print $3}')
方法2:docker images --filter "dangling=true" --format "{{.ID}}" | xargs docker rmi
方法3:docker rmi $(docker images -f "dangling=true" -q)
************************ 镜像命令 ************************
1. 查看镜像
执行命令:docker images
2. 搜索镜像
执行命令:docker search 镜像名称
3. 删除镜像
执行命令:docker rmi 镜像ID (多个 :docker rmi 镜像ID 镜像ID 镜像ID)
4. 清理镜像缓存,以释放磁盘空间
执行命令:docker image prune
************************ 容器命令 ************************
1. 查看正在运行的容器
执行命令:docker ps
2. 查看停止的容器。
执行命令:docker ps -f status=exited
3. 查看所有容器(包括运行和停止)
执行命令:docker ps -a
指定容器-查看: docker ps -f "name=CONTAINER_NAME"
4. # 停止容器
docker stop 容器名称|容器ID
5. # 启动容器
docker start 容器名称|容器ID
6. # 删除容器
docker rm 容器名称|容器ID
7. # 查看容器使用的镜像ID
docker inspect -f '{{.Image}}' <容器ID>
8. # 查看容器挂载目录
docker inspect 容器ID
9. # 多目录挂载
docker run -di -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名
10. #进入容器/执行命令:
docker exec -it nacos /bin/bash
11. #容器目录挂载 【采坑:每次挂载建议删除重新创建容器进行多目录挂载,否则执行以下命令会在创建一个nginx容器】
docker run -it -v /本地目录:/容器目录 容器ID /bin/bash
12.# 文件copy 进行更改
先把文件复制到本地当前文件夹进行修改,.点代表当前所在目录:docker cp mysql:/etc/mysql/my.cnf .
修改后,再把文件复制覆盖到文件所在文件夹:docker cp my.cnf mysql:/etc/mysql/my.cnf
************************ Docker Compose 常用命令 (构建、创建、启动相关容器) ************************
1. -d表示在后台运行
docker-compose up -d
2. 指定文件启动
docker-compose -f docker-compose.yml up -d
3. 停止所有相关容器
docker-compose stop
4. 列出所有容器信息
docker-compose ps
************************ 其他命令 ************************
0. #授权
chmod +x *.sh
1. # 查看日志
docker logs -f nginx
docker logs -f --tail=100 容器ID (最后一百条数据)
docker logs --since 30m 容器ID (查看最近30分钟的日志:)
2. #查看.sh文件log日志
sh + ./deploy.sh port
3. #查看 docker-compose 日志
docker-compose logs -f -t ruoyi-gateway >> myDockerCompose.log
4. #查看容器详情节点
docker inspect mysql
5. #列出所有 docker 网络
docker network ls
************************ Docker命令安装 ************************
# 安装vim 和 vi 命令
apt-get update
apt-get install -y vim
一、CentOS中Docker更改配置后重启不了的两种解决方式
方式一:实际文本修改配置
首先当前Linux主机中已存放了docker容器中的配置信息(一般挂载默认目录是:/var/lib/docker/overlay/),其次只要找到这个挂载目录的配置文件,修改后就可以重新启动了这里不过多赘述方式一。
方式二:间接修改配置文件
# 1、将docker容器内的文件拷贝至Linux主机中,.点代表当前所在目录
docker cp mysql:/etc/mysql/my.cnf .
# 2、vim修改配置文件中出错的地方,重新修改回来。复制修改后的配置文件到docker容器中去
docker cp my.cnf mysql:/etc/mysql/my.cnf
# 3、最后重启容器实例,使修改后的配置文件生效
docker restart mysql
二、Docker-Compose 设置JVM虚拟机内存和日志内存
-Xms1024m (堆最大大小)
-Xmx1024m (堆默认大小)
1. Docker-Compose 设置
version: '2'
services:
${project.build.finalName}: # 使用 Dockerfile 中定义的项目名作为服务名称
image: ${project.build.finalName}:1.0.0 # 使用 Dockerfile 中定义的镜像名和标签
container_name: ${project.build.finalName} # 容器名称也使用同样的命名
ports:
- "8080:8080" # 暴露的端口
volumes:
- ./${project.build.finalName}.jar:/app/${project.build.finalName}.jar # 挂载 JAR 文件
- ./application.yml:/app/application.yml # 挂载配置文件
- ./application-${activatedProperties}.yml:/app/application-${activatedProperties}.yml # 挂载特定环境的配置文件
- ./dumps:/app/dumps # 挂载内存转储目录
- ./logs:/app/logs # 挂载日志目录
environment:
#- TZ=Asia/Shanghai # 设置时区 1 (如果无效:1和2都试一下)
- TIME_ZONE=Asia/Shanghai # 设置时区 2
- JAVA_OPTS=-server -Xms512m -Xmx1024m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/dumps/oom_dump.hprof
- APP_ENV=-Dapp.log.serviceName=${project.build.finalName} --spring.profiles.active=${activatedProperties}
restart: always # 设置容器总是自动重启
logging:
driver: json-file
options:
max-size: "10M"
max-file: "1"
2. maven pom.xm 设置 (添加:"-Xmx1024m", "-Xms512m" )
<entryPoint>["java", "-jar", "-Xmx1024m", "-Xms512m", "-Dspring.profiles.active=prod","/${project.build.finalName}.jar"]</entryPoint>
3. jar 命令设置
java -jar -Xms1024m -Xmx1024m 1.jar
# 或
nohup /usr/local/jdk1.8.0_144/bin/java -jar -Xms1024m -Xmx1024m /data/1-*.jar > /data/1.log 2>&1 &