一、常见问题 1.镜像的容器运行时,如果未提供ip a或者ifconfig命令,所有用法以下两种方查看容器ip: 1)切换到某个容器:docker attach xxxx (比如docker attach nginx);然后cat /etc/hosts; 2)直接在宿主机执行命令:docker inspect xxxx (比如docker inspect nginx); 会回显一个json串信息,就包含了查询的容器ip;

2.启动容器时报错:找不到/bin/bash 可以在启动容器时不指定解释器/bin/bash,即: docker run -it -d --name ng nginx:latest 而不要使用如下命令 docker run -it -d --name ng nginx:latest /bin/bash

3.无法附着到容器,即docker attach没反应 可以在容器已经运行的情况下,使用下面命令(注意一定时docker容器已经运行): docker exec -it CONTAINER ID /bin/bash 或者 docker exec -it NAME /bin/bash CONTAINER ID和NAME表示已运行的容器ID和容器名;但是这种方式,每执行一个命令,都要在docker容器内开启一个新的进程; 以这种方式切换到容器后,如果通过exit,ctrl+C,ctrl+D方式退出,容器并不会停止运行,所以这是一种比较保险的方式,防止误停止容器运行;

4.从docker hub官方镜像站pull的镜像,运行的容器缺少命令 我从docker官网拉取了nginx镜像,运行后进入容器内部,发现没有wget命令,然后理所当然的安装wget命令: apt-get -y install wget 但是又会报下面的错误: 这是因为最初的镜像运行的容器中,软件源中的所有软件列表(即/erc/apt/sources.list)未更新导致;执行以下命令后,再进行安装即可; apt-get update 如果公司不支持外网链接,无法更新软件源,则可在公司内部的镜像站上搜debian,然后然后使用说明,手动替换/erc/apt/sources.list文件内容即可;