docker 使用时一些问题点

0、容器是个进程,负责执行容器内的指令,执行完则结束

1、run 参数 --privileged,默认是关闭的,使用该参数,container 内的 root 拥有真正的 root 权限,否则,container 内的 root 只是外部的一个普通用户权限。privileged 启动的容器,可以看到很多 host 上的设备,并且可以执行 mount,甚至允许你在 docker 容器中启动 docker 容器。关闭的话则无法自启动 /etc/init.d/ 的程序,之前启动容器时老是无法自启动 nginx 等程序。

2、/etc/hosts, /etc/resolv.conf 和 /etc/hostname,容器中的这三个文件不存在于镜像,所以每次启动容器的时候,需要重新构建新的 /etc/hosts 文件。可以使用 --add-host 来动态添加/etc/hosts中的数据;或者写个自启动的脚本每次把数据写进 hosts,这个方法比较好;或者用 docker-compose 来启动,这样参数都放在文件里。

3、docker run 端口指定,当使用 -P 时,则是系统会随机映射一个 32000~49900 的端口到内部容器开放的网络端口,如:

不想随机的话,则使用 -p 来指定具体端口,但是在一个指定端口上只可以绑定一个容器。支持的格式有 hostPort:containerPort、ip:hostPort:containerPort、ip::containerPort

4、docker start xxx,控制台无法看到输出的信息,只能通过 docker logs xxx 来查看输出

5、空的基础镜像:scratch,可用于放go的二进制文件

原文地址:https://www.cnblogs.com/linguoguo/p/10470671.html