主要是做个记录,供自己看
阮一峰教程:https://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
- 查看 docker 配置:
docker info
- 列出本机所有 image 文件:
docker image ls
- 删除 image 文件:
docker image rm [imageName]
- 拉取 image 文件:
docker image pull [imageName]
- 查找 image 文件:
docker search [imageName]
- 通过 Dockerfile 创建 image 文件:
docker image build -t [imageName]:0.0.1 [DockerfilePath]
,-t
用来指定 image 文件名,:
用来指定标签,不指定则是默认标签latest
。例如:docker build -t koa-demo:0.0.1 .
。注:DockerfilePath 路径下的所有文件都会被打包发送。 - 从 image 文件生成一个正在运行的容器实例:
docker containier run [imageName]:tag /bin/bash
,本地如果没有,该命令会自动拉取 image。- 常用参数:
-p
用来指定容器端口到本机端口的映射 (默认绑定到的是 tcp 端口,可以在端口映射写完后添加/udp
,使其绑定到 udp 端口)、 -it
使容器 shell 映射到当前 shell、/bin/bash
是容器启动以后执行的第一条命令,这里是启动 bash,保证用户可以使用 shell。- 整个例子:
docker containter run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash
,这里是将容器 3000 端口映射到本机 8000 端口。 -d
使容器后台运行。--name [containerName]
将容器命名为 [containerName]
- 常用参数:
- 查看正在运行的容器:
docker container ls
,可添加--all
以查看包括停止运行的容器 - 终止容器运行:
docker container kill [containerID]
、docker container stop [containerID]
。两者的区别是,SIGKILL
与SIGTERM
信号的区别,SIGKILL
会立刻终止,且不能被捕获、SIGTERM
可以在收到信号后进行收尾清理工作,可以被捕获 - 删除已终止运行的容器文件:
docker container rm [containerID]
docker container run
每次运行都是新建一个容器,即多个相同的实例。使用docker container start [containerID]
来启动已经生成、已经停止运行的容器文件- 查看 docker 容器的输出,即容器里面的 shell 的标准输出:
docker container logs [containerID]
,当docker container run
时没有指定-it
,就需要此命令查看输出 - 进入一个正在运行的容器:
docker container exec -it [containerID] /bin/bash
- 从 docker 容器拷贝文件到本机:
docker container cp [containerID]:[path] dst_path
,两路径反过来就是反向拷贝 - 退出容器:
exit
注:docker run
与docker container run
,docker ps
与docker container ls
,作用是相同的,只是docker container xxx
语义更加明确
Dockerfile 参考:https://www.runoob.com/docker/docker-dockerfile.html