Containers are just Linux cgroups and namespaces.
如果在网络上搜索什么是容器,那么通常会达到如上的结果,那么我们就从网络命名空间说起。
在第一个终端中我们启动了一个监听在8080端口的服务,其实我们是使用了主机的网络命名空间(host network namespace
),有时又叫root or global network namespace
,为了不让端口冲突,我们创建一个新的网络空间给第三个终端使用。
sudo ip netns add netns_dustin
使用新创建的网络空间启动http server服务,而不是host network namespace
,现在问题来了,如何访问这个新的网络命名空间呢。
CentOS7及以上版本,修改配置下载镜像地址为国内地址,先修改registry-mirrors的地址,然后重启即可。
# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
# systemctl daemon-reload
# systemctl restart docker
Dockerfile 文件命令总结
功能
指定基础镜像,并且必须是第一条指令。如果不以任何镜像为基础,那么写法为:FROM scratch
。
同时意味着接下来所写的指令将作为镜像的第一层开始
语法
FROM <image>
FROM <image>:<tag>
FROM <image>:<digest>
<tag>
和<digest>
是可选项,如果没有选择,那么默认值为latest
docker exec -it c0afa96d49df /bin/bash
docker version
查看docker的版本号,包括客户端、服务端
docker info
查看系统(docker)层面信息,包括管理的images, containers数据
从Docker Hub查找镜像