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  等等  不加就时不限制

原文地址:https://www.cnblogs.com/brucewhite/p/10901018.html