场景

在某些时候,定位问题,想看一下当时容器运行所带的参数。根据参数看看,服务问题是不是参数不对导致。

环境参数 printenv 查看

对于环境参数可以进入容器,运行 printenv 查看

  1. xiaohui@220200700182:/mnt/c/Users/DELL$ docker exec -it 2b5aef5d59c9 bash
  2. root@2b5aef5d59c9:/#
  3. root@2b5aef5d59c9:/# printenv
  4. HOSTNAME=2b5aef5d59c9
  5. JAVA_HOME=/usr/local/openjdk-8
  6. JAVA_BASE_URL=https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jre_
  7. PWD=/
  8. JAVA_URL_VERSION=8u242b08
  9. TZ=PRC
  10. HOME=/root
  11. LANG=C.UTF-8
  12. TERM=xterm
  13. SHLVL=1
  14. PARAMS=--spring.datasource.url=jdbc:mysql://192.168.0.220:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=root
  15. PATH=/usr/local/openjdk-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  16. JAVA_VERSION=8u242
  17. _=/usr/bin/printenv
  18. root@2b5aef5d59c9:/#

端口参数 docker ps

  1. xiaohui@220200700182:/mnt/c/Users/DELL$ docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
  3. NAMES
  4. 2b5aef5d59c9 xuxueli/xxl-job-admin:2.2.0 "sh -c 'java -jar $J…" 2 months ago Up 21 minutes 0.0.0.0:8080->8080/tcp xxl-job-admin
  5. 543583525fab nacos/nacos-server:2.0.3 "bin/docker-startup.…" 2 months ago Up 26 minutes 0.0.0.0:8848->8848/tcp, 0.0.0.0:9555->9555/tcp, 0.0.0.0:9848->9848/tcp nacos-standalone-mysql
  6. 181d6e2fc256 nacos/nacos-mysql:8.0.16 "docker-entrypoint.s…" 2 months ago Up 26 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
  7. xiaohui@220200700182:/mnt/c/Users/DELL$

使用 runlike -p 容器 来查看

需要依赖 pip
参考:如何查看docker run启动参数命令

由于本机已安装 pip,所以直接安装 runlike

  1. xiaohui@220200700182:/mnt/c/Users/DELL$ pi
  2. pic pidgenx.dll pinentry-curses pinky pipenv-resolver.exe
  3. pico pidof ping pip.exe pipenv.exe
  4. piconv pifmgr.dll ping4 pip3.10.exe pipreqs.exe
  5. pid.dll pinentry ping6 pip3.exe pivot_root
  6. xiaohui@220200700182:/mnt/c/Users/DELL$ pip3.exe install -g runlike
  7. Usage:
  8. pip3 install [options] <requirement specifier> [package-index-options] ...
  9. pip3 install [options] -r <requirements file> [package-index-options] ...
  10. pip3 install [options] [-e] <vcs project url> ...
  11. pip3 install [options] [-e] <local project path> ...
  12. pip3 install [options] <archive url/path> ...
  13. no such option: -g
  14. xiaohui@220200700182:/mnt/c/Users/DELL$ pip3.exe install runlike
  15. Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
  16. Collecting runlike
  17. Downloading https://mirrors.aliyun.com/pypi/packages/58/99/65fffceb574cafa384098fd78b99bb7ddc045d1c16ede3b245988e4d352
  18. 6/runlike-1.4.0-py3-none-any.whl (5.5 kB)
  19. Collecting click<9.0.0,>=8.0.1
  20. Downloading https://mirrors.aliyun.com/pypi/packages/48/58/c8aa6a8e62cc75f39fee1092c45d6b6ba684122697d7ce7d53f64f98a12
  21. 9/click-8.0.3-py3-none-any.whl (97 kB)
  22. |████████████████████████████████| 97 kB 254 kB/s
  23. Collecting colorama
  24. Downloading https://mirrors.aliyun.com/pypi/packages/44/98/5b86278fbbf250d239ae0ecb724f8572af1c91f4a11edf4d36a20618944
  25. 0/colorama-0.4.4-py2.py3-none-any.whl (16 kB)
  26. Installing collected packages: colorama, click, runlike
  27. Successfully installed click-8.0.3 colorama-0.4.4 runlike-1.4.0
  28. xiaohui@220200700182:/mnt/c/Users/DELL$

运行 runlike -p 容器

  1. xiaohui@220200700182:/mnt/c/Users/DELL$ docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
  3. NAMES
  4. 2b5aef5d59c9 xuxueli/xxl-job-admin:2.2.0 "sh -c 'java -jar $J…" 2 months ago Up 10 minutes 0.0.0.0:8080->8080/tcp xxl-job-admin
  5. 543583525fab nacos/nacos-server:2.0.3 "bin/docker-startup.…" 2 months ago Up 15 minutes 0.0.0.0:8848->8848/tcp, 0.0.0.0:9555->9555/tcp, 0.0.0.0:9848->9848/tcp nacos-standalone-mysql
  6. 181d6e2fc256 nacos/nacos-mysql:8.0.16 "docker-entrypoint.s…" 2 months ago Up 15 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
  7. xiaohui@220200700182:/mnt/c/Users/DELL$
  8. xiaohui@220200700182:/mnt/c/Users/DELL$ runlike.exe -p 2b5aef5d59c9
  9. docker run \
  10. --name=xxl-job-admin \
  11. --hostname=2b5aef5d59c9 \
  12. --mac-address=02:42:ac:11:00:02 \
  13. --env='PARAMS=--spring.datasource.url=jdbc:mysql://192.168.0.220:3306/xxl_job?useUnicode=true&characterEncoding=
  14. UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=roo
  15. t' \
  16. --env=PATH=/usr/local/openjdk-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
  17. --env=LANG=C.UTF-8 \
  18. --env=JAVA_HOME=/usr/local/openjdk-8 \
  19. --env=JAVA_VERSION=8u242 \
  20. --env=JAVA_BASE_URL=https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u242-b08/Op
  21. enJDK8U-jre_ \
  22. --env=JAVA_URL_VERSION=8u242b08 \
  23. --env=TZ=PRC \
  24. --volume=/tmp:/data/applogs \
  25. -p 8080:8080 \
  26. --restart=no \
  27. --label='desktop.docker.io/wsl-distro=Ubuntu-20.04' \
  28. --runtime=runc \
  29. --detach=true \
  30. xuxueli/xxl-job-admin:2.2.0
  31. xiaohui@220200700182:/mnt/c/Users/DELL$

小结

docker ps 查看的信息有限,主要是端口、地址,镜像等
printenv 查看的环境参数
上面两个,应该满足绝大部分情况。runlike 需要额外安装,在有网络和相关权限的情况下还可以操作。