win7安装docker环境
https://docs.docker.com/toolbox/toolbox_install_windows/
通过docker version报错
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.37/version: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
解决办法
docker-machine env --shell cmd default
//或者
docker-machine env default
将所有结果在cmd命令行中运行即可。具体见:
https://blog.csdn.net/fanfan4569/article/details/71340556
docker基本命令
- 运行helloword
docker run ubuntu echo ‘helloword’
容器
- 启动交互式容器(与ssh远程连接一样)
docker run -i -t ubuntu /bin/bash
i表示–interactive,始终打开标准输入,默认false
t表示tty,分配一个伪终,端默认false
docker run --name test -i -t ubuntu /bin/bash #自定义容器名,常用
exit,关闭并退出使用,退出后,容器自动关闭
Ctrl+P或Ctrl+Q,退出容器,容器不关闭
- 进入已经启动的容器
docker attach test
- 查看容器
docker ps #正在运行的容器
docker ps -a #所有容器
docker ps -l #最新创建的容器
docker inspect id|name #查看建立的容器
结果
CONTAINER ID 唯一id(系统自动生成)
NAMES (系统自动生成)
- 重新启动、停止容器
docker start test
docker stop test
docker kill test
- 删除已经停止的容器
docker rm id|name
#删除所有容器
docker rm $(docker ps -a -q)
- 守护式容器:能够长期运行,适合程序或服务
docker run --name t2 -d ubuntu /bin/sh -c “while true; do echo helloworld ;sleep 1;done”
后台一直打印helloword,-d如果执行完任务,则关闭容器
- 查看容器日志
docker logs -tf --tail 0 t2
f为follows 一直跟踪日志变化并返回结果,默认false
t timestamps 返回结果加时间戳,默认false
–tail,返回结果数,默认all,0表示最新的日志
- 查看运行中容器的进程
docker top t2
- 运行容器中启动新的进程
docker exec -i -t t2 /bin/bash
- 与容器内端口映射
docker run -p 8080:80 --name web -i -t ubuntu /bin/bash
P表示publish-all,映射容器所有端口,默认false
p表示publish映射指定端口,默认false
如果只有-p 80则docker会随机一个端口与其映射
例容器部署nginx静态web网站
- 1、创建容器
docker run -p 80 --name web -i -t ubuntu /bin/bash
- 2、安装nginx
apt-get install -y nginx
报错如下:
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package nginx
解决方案:apt-get update
完成更新后再次执行安装即可
- 3、安装vim
apt-get install -y vim
- 4、创建网站
mkdir -p /var/www/html
vi /var/www/html/index.html #随便写一个网页
- 5、修改nginx映射
vi /etc/nginx/sites-enabled/default
启动nginx
nginx
- 6、退出后,查看端口映射情况
docker port web
#可以使用容器的ip或者本机ip进行网页的查看
容器ip的查看方法
docker inspect web
#IPAddress 此项
但windows仍然无法访问网页,原因:https://blog.csdn.net/qq_33212500/article/details/79412930
使用命令查找linux的ip地址
docker-machine ip default
#一般是192.168.99.100,就可以访问页面了
如果此容器关闭了,之后还需要使用,则命令如下
docker start web
docker exec web nginx #启动nginx
docker top web #查看nginx是否启动
docker logs -tf web #查看日志