借用debug容器访问service容器

340 阅读1分钟

微服务使用的基础镜像尽可能的小,如果进行调试时;可以采用debug容器进行访问。

1. 拉取debug镜像

$ docker pull murwen/centos-full
Using default tag: latest
latest: Pulling from murwen/centos-full
Image docker.io/murwen/centos-full:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
5f70bf18a086: Pull complete
6ad012af89d8: Pull complete
f69f0c90ffa7: Pull complete
Digest: sha256:976e9252b5149a228156130925e6500c303467a0b3fed7097851e86a5b6ec091
Status: Downloaded newer image for murwen/centos-full:latest
docker.io/murwen/centos-full:latest

2. 查看debug镜像

$ docker images
murwen/centos-full   latest    4369029340b0   5 years ago     3.05GB

3. 查看待调试服务docker

$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED       STATUS       PORTS                           NAMES
3b34ba0685a8   master   ""   3 hours ago   Up 3 hours   443/tcp, 0.0.0.0:9999->80/tcp   master

4. 使用murwen/centos-full来调试master容器

$ docker run -it --network=container:3b34ba0685a8 --pid=container:3b34ba0685a8 murwen/centos-full bash
[root@3b34ba0685a8 /]# vi
~                                                  VIM - Vi IMproved

注意单独运行容器时,是下面这样子:

$ docker exec -it 3b34ba0685a8 bash
# vi
/bin/sh: 1: vi: not found

如果k8s中来调试微服务的话,可以参考下面的插件: github.com/aylei/kubec…