首页
  • Java
  • Linux
  • Deploy
  • Application

Xiao ku

板砖师傅
首页
  • Java
  • Linux
  • Deploy
  • Application
  • Nginx

  • Git

  • Docker

    • 常用docker命令
      • 进程PID查找归属容器ID
      • 进入docker容器
        • redis
        • mysql
        • kafka
      • docker ps -a
      • 删除所有镜像
      • 删除所有docker容器
      • docker镜像导入导出
      • 监听服务,若异常则重启
        • 脚本
        • 检查脚本是否能够正常启动
        • 加入定时任务
      • 构建镜像
    • 使用docker构建前端项目
    • 导出docker镜像脚本
  • Vue

  • Macos

  • Application
  • Docker
xiaoku
2023-03-10
目录

常用docker命令

# 进程PID查找归属容器ID

根据进程PID查找归属容器ID

使用inspect

docker inspect -f '{{.State.Pid}} {{.Id}}' $(docker ps -q) | grep <PID>
1

note

如果PID是容器内运行子进程那docker inspect就无法显示了,使用以下命令

for i in  `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i &&echo ID=$i; done |grep -A 10  <PID>
1

note

# 进入docker容器

# redis

docker exec -it redis redis-cli -a 密码
获取 redis 中所有的 key:
KEYS *
//删除当前数据库中的所有Key
flushdb
获取过期时间
ttl key

SET runoobkey redis
DEL runoobkey
1
2
3
4
5
6
7
8
9
10

# mysql

docker exec -it mysql bash
链接数据库
mysql -uroot -p
输入密码后就进入数据库了
1
2
3
4

# kafka

1.进入容器
docker exec -it kafka-zookeeper /bin/sh
2. 生产者(容器内部使用127.0.0.1:9092)
./bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test 
3. 消费者
./bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test --from-beginning
1
2
3
4
5
6

# docker ps -a

只输出docker的ID和Name
docker ps --format "{{.ID}}: {{.Names}}"
1
2

# 删除所有镜像

docker rmi $(docker images -q)
1

# 删除所有docker容器

docker kill $(docker ps -a -q)
docker rm $(docker ps -a -q)
1
2

# docker镜像导入导出

导出

docker save -o mysql5721.tar mysql:5.7.21
1

导入

docker load -i mysql5721.tar
1

# 监听服务,若异常则重启

# 脚本

/home/check/checkDockerServer.sh如下:

#!/bin/bash
#当前时间
now=`date +"%Y-%m-%d %H:%M:%S"`
#获取所有容器
arr=`docker ps --format "{{.Names}}"`
#清空正常的日志
echo " " >/home/check/checkDocker.log
#循环
for item in ${arr[*]}
do
   # 查看进程是否存在
   exist=`docker inspect --format '{{.State.Running}}' ${item}`

    if [ "${exist}" != "true" ]
    then {
        echo "${now} 重启docker容器,容器:${item}" >> /home/check/restartDockerServer.log
        docker restart ${item}
    }
    else
    {
      echo "${now} 容器:${item} 正常" >>/home/check/checkDocker.log
    }
    fi
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 检查脚本是否能够正常启动

 sh /home/check/checkDockerServer.sh
1

# 加入定时任务

 crontab -e
1

每个一分钟执行一次脚本

*/1 * * * * sh /home/check/checkDockerServer.sh >/dev/null 2>&1
1

# 构建镜像

例:基于openjdk:8-jre

配置文件:/home/application.yml或/home/application.properties
jar包:/app.jar
时区:上海
其他:更新apt-get,安装zip、unzip
可根据实际需求增删相关配置
1
2
3
4
5

Dockerfile

FROM openjdk:8-jre
RUN sh -c 'touch /app.jar'
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENTRYPOINT ["java","-Xmx800m","-Dspring.config.location=/home/application.yml,/home/application.properties","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
RUN apt-get update -y &&apt-get install -y zip unzip
1
2
3
4
5
6

构建命令:openjdk-jar 镜像,版本号8,根据当前目录Dockerfile文件

docker build -t openjdk-jar:8 ./
1
上次更新: 2023/03/10, 10:08:26
纯Git服务器搭载
使用docker构建前端项目

← 纯Git服务器搭载 使用docker构建前端项目→

Copyright © 2019-2024 | 闽ICP备20012188号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式