docker
windows10 家庭版
安装
如果你是 win10 专业版/企业版, 那么可以直接安装 docker desktop, 从这里下载
直接打开就安装好了
不过我的笔记本是家庭版, 本来找到一个绕开检测系统要求的方法, 不过看起来已经失效了, 所以只能安装 Docker Toolbox了, 地址在这里
一路 Next 就完成安装了, 在桌面上会有三个图标:
打开 Docker Quickstart Terminal 来进行一些初始化操作
结果遇到了大坑, virtual box 的 host-only adapter 一直失败, 重装了 virtual box 也不行, 不过看到了一个解决方法, 在我的笔记本上生效了:
I was able to get this working by disabling all of the network adapters, besides the physical one, during installation. Once installation is complete you can re-enable them. To disable the adaptors, do the following steps:
- Open Control Panel
- Network Connections
- Select each adaptor and then select ‘Disable this network device’ from the top
简单地说就是
- 在 查看网络设备器 这里先禁用所有的设备
- 重新运行
Docker Quickstart Terminal - 稍等一下, 创建
host-only adapter应该是成功的, 但是出现了wait for an IP - 这时候就重新打开你的 网络设备
- 完成
换源(docker toolbox)
1 | docker-machine ssh default |
配置nginx
- 拉取
image
1 | docker pull nginx |
然后就可以看到该镜像了
- 默认配置启动
nginx
1 | docker run --name nginx-test -p 8080:80 -d nginx |
其中:
--name nginx-test代表容器名字为nginx-test-p 8081:80表示端口映射, 把主机8081端口映射到docker内的80端口-d表示后台运行nginx表示以镜像运行一个容器
已经在后台运行了, 下面显示的东西是容器的 ID, 一般可作为日志的文件名
也可以通过
1 | docker ps |
来查看运行的程序的信息, 里面也包括 ID, 通过这个 ID 就可以启动、 关闭、 删除这个容器了
- windows的坑
因为在 windows 里的 docker 还是跑在一个 linux 虚拟机里的(至少家庭版是这样), 所以像上面那样启动 nginx 实例后, 你在浏览器访问 http://127.0.0.1:8080 是看不到 nginx 的欢迎界面的
因为 docker nginx 跑在 linux 虚拟机上!, 所以我们要访问 linux 的对应 ip 和 port, 可以通过下面来查看:
这就是你 linux 的 ip, 那么我们访问 http://192.168.99.100:8080 就能看到 docker nginx 的欢迎界面啦
外部文件挂载配置nginx
docker file
docker-compose
命令
版本号
1 | docker version |
连接到 default
1 | docker-machine ssh default |
重启 default
1 | docker-machine restart default |
列出本机的所有 image 文件
1 | docker image ls |
删除 image 文件
1 | docker image rm [imageName] |
拉取 image 文件
1 | docker image pull [imageName] |
运行 image 文件(若不存在则会自动拉取)
1 | docker container run hello-world |
列出本机正在运行的容器
1 | docker container ls |
列出本机所有容器, 包括终止运行的容器
1 | docker container ls --all |
启动已经生成、已经停止运行的容器文件
1 | docker container start [containerID] |
停止容器运行
1 | docker container stop [containerID] |
终止容器运行
1 | docker container kill [containID] |
删除容器文件
1 | docker container rm [containerID] |