好久不打开docker运行环境,执行命令出现下面的情况
bgddeMBP:~ bgd$ sudo docker info Cannot connect to the Docker daemon. Is the docker daemon running on this host?
解决办法见 http://stackoverflow.com/questions/21871479/docker-cant-connect-to-docker-daemon
简单地说,在Mac上遇到这个问题,需要执行
eval "$(docker-machine env default)"
再运行 docker info就可以了。
下面是docker学习流水账:
docker run -i -t ubuntu /bin/bash #-i保证容器stdin开启,-t为容器分配一个伪tty终端。这样容器才能提供一个交互式shell hostname #查看容器的主机名 cat /etc/hosts #查看hosts文件 ps -aux #查看容器中的进程 apt-get update & apt-get install vim #一样可以在容器里安装程序 exit #退出容器
docker ps #查看运行中的docker容器,-l 最后一次运行的容器 docker run -i -t --name=容器名称 ubuntu /bin/bash #默认随机名称,--name起名 docker start 容器名称或者容器ID docker attach 容器名称或者容器ID #附着到正在运行的容器上 docker run --name=容器名称 -d ubuntu /bin/sh -c "while true;do echo hello;sleep 1;done" #创建可以长期运行的守护式容器 docker logs 容器名称 #获取容器日志 -f 可以获取到最后几行,-t 可以显示时间戳
docker top 容器名称 #查看容器内部的进程 docker exec -d 容器名称 touch /etc/new_config_file #在容器内执行命令 docker exec -t -i 容器名称 /bin/bash #打开容器的shell
docker stop 容器名称 #停止一个容器 docker run --restart =always --name 容器名称 -d ubuntu /bin/bash -c "while true;do echo hello;sleep 1;done" #创建一个能够自动重启的容器,always 可以替换为on-failure,可以指定次数如:on-failure:5 docker inspect 容器名称或者ID #获取更多的容器信息 docker inspect --format='{{.State.Running}}' 容器名称 #选定查看结果 docker rm 容器名称或者ID #删除一个容器 docker ps -a #列出所有容器 docker ps -a -q #列出所有的 docker rm `ps -a -q` #删除所有的容器