启动创建容器
docker run -it 镜像id /bin/bash
-t:让docker分配一个伪终端并绑定在容器的标准输入上
-i:让容器的标准输入保持打开
-d:以守护态运行容器
--name:给容器指定别名,不指定系统会默认分配一个名称
-v:数据挂载的目录,详细请参考docker的数据管理
-h:设置主机名,会写入容器内部的/etc/hostname和/etc/hosts文件,在容器外部不可见
-p:指定容器内的某个端口绑定到宿主机上的某一个端口
-P:随机映射一个49000-49900的端口到内部容器的开放端口
例:
docker run创建容器时,docker在后台的操作包括:
-
检查本地是否存在指定镜像,没有则从远程仓库下载
-
分配一个文件系统,并在只读的镜像上层外挂载一层可读写层
-
在宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
-
从地址池配置一个ip地址给容器
-
执行用户指定的应用程序
-
执行完毕后容器被终止
如果在执行docker run 时,加上--rm参数,则容器在终止时会自动删除,--rm和-d不能同时用。
启动终止容器
docker start 容器id
查看运行中的容器
docker ps
查看所有容器
docker ps -a
查看容器的输出信息
docker logs 容器id
终止容器
在宿主机上:docekr stop 容器id
在容器内:exit或者ctrl+d
重启容器
docker restart 容器id
进入容器
docker exec -it 容器id /bin/bash
或者
docker attach 容器id
当多个窗口使用attach到同一个容器时,所有窗口会同步显示,当某个窗口命令阻塞时,其他窗口也会阻塞。
查看容器详细信息
docker inspect 容器id
导出容器
docker export 容器id > 导出的文件名
导入容器
此方式导入的文件会成为镜像。需要以镜像运行成容器
docker import url地址|文件
load和import的区别?
load:导入镜像文件到本地镜像库
镜像文件保存了完整记录,体积大。
import:导入容器文件到本地镜像库
容器文件丢失所有历史记录和元数据信息,即快照状态。可以指定标签元数据信息。
删除容器
docker rm 容器id
-f:停止并删除容器