docker
1. docker 的坑
/etc/resolv.conf
,还有/etc/hostname
,/etc/hosts
等文件都是通过挂载方式挂载到容器中来的。所以想要用sed对他们进行修改,都会遇到这样的问题。
这几个文件不能mv,不能sed , sed 的实质是生成新的文件 ,
解决: echo "$(sed 's/192.168.1.1/192.168.1.254/g' /etc/resolv.conf)" > /etc/resolv.conf
2. docker 服务 启动报错 如下
dockerd: Error starting daemon: Error initializing network controller: list bridge addresses failed: no available network
解决办法:
sudo ip link add name docker0 type bridge
sudo ip addr add dev docker0 172.17.42.1/16
手动创建 docker0 桥接
原因: 查路由,发现 有如下一条路由
172.16.0.0/12 via 119.36.161.129 dev bond0
因为docker 服务在启动时 创建docker0 网桥时 ,除了 添加IP ,还会添加路由, 但因为有了一个路由,所以 新路由创建失败,因此 创建桥接也失败,
注: docker0 正常是由 docker 服务在启动时 创建的 。
3. docker 服务启动命令
systemctl status docker -l 系统调用
如看不出报错,可手动执行 docker 服务的启动命令,看 报错输出。
启动服务配置文件 /usr/lib/systemd/system/docker.server
docker 相关命令:
docker exec -it container-name /bin/bash 进入容器,并可执行命令。
docker attach name, 也可连接容器,但不能执行命令,只能查看容器输出,类似于docker logs -f name 查看容器输出。
docker info 主要宿主机里创建的容器信息,镜像等信息。
docker inspect name 查看某一个容器的详细信息。
docker stats 查看容器使用资源情况
docker pull images
docker start container
docker stop container
docker rm container
docker rmi images
docker login -u user -p passwd
docker run 创建container
在线更新容器内存 和 cpu 使用量
docker update name --memory-swap=36g -m=36g --cpuset-cpus=1 or 24 等等 不加就时不限制