摘要
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
docker 常见命令
-i (interactive, 交互) 以交互式模式运行容器,一般与t搭配运行
-t (tty, 终端) 为容器重新分配一个伪终端输入,通常与i搭配使用
-P (大写) 随机端口映射
-p (小写) 指定端口映射,有以下四种模式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
–name=“新容器名字” 为容器指定新的名字
-d 后台运行容器,并返回容器id,也即启动守护模式容器
docker ps 查询docker当前运行的进程有哪些。
docker ps -l 查看上一次运行的容器
docker ps -a 查看历史运行过得所有容器
docker ps -n num 查看历史运行过得前num个容器
docker ps -q 查看当前运行容器的编号ID,其他不显示
docker ps --no-trunc:不截断输出(输出很详细)
ctrl+P+Q 暂时离开容器,不退出容器
exit 关闭容器并退出
docker start 容器ID 或者容器名name,运行退出后的容器
docker stop 容器ID 或者容器名name,停止运行容器
docker kill 容器ID 或者容器名name,强制停止容器
docker rm ID 删除容器(容器停止后删除)
docker rm -f ID 强制删除容器(容器未停止就删除)
docker rm -f $(docker ps -a -q) 一次删除当前的所有容器
docker ps -a -q | xargs docker rm 一次删除当前的所有容器
docker rmi ID 删除镜像
docker run -d 镜像的REPOSITORY|ID 后台运行容器(字节这样的话容器会自动退出的,因为没有前台交互,容器会自动退出)
docker logs 容器ID, 查看docker上对应容器的日志
docker logs -t 容器ID ;加时间戳
docker logs -t -f 容器ID; 跟随最新的容器日志打印
docker logs -t -f --tail num 容器ID; 跟随最新的容器日志打印,只显示最后的第num个最新的日志
docker top 容器ID ,查看容器内部正在运行的进程
docker inspect 容器ID, 查看容器内部细节
docker attach 容器ID, 进入你之前没有关闭但临时退出的容器
docker exec -t 容器ID 你要操作内部容器的命令; 就是在容器外面执行容器命令,不用非得进入容器才能运行容器命令
docker cp 容器ID:容器内路径 主机路径;将容器内拷贝文件到主机
docker commit ,提交容器副本使之称为一个新的镜像
docker commit -m=“描述性文字” -a=“作者” 容器ID 要创建目标镜像名:版本号TAG; 提交容器副本
docker run -it -v /宿主机绝对目录:/容器内目录 镜像名; 实现本地的宿主机内文件目录和容器内目录文件的对接,类似于移动硬盘的插入
docker run -it -v /宿主机绝对目录:/容器内目录:ro(read only) 镜像名; 实现本地的宿主机内文件目录和容器内目录文件的对接,类似于移动硬盘的插入, ro 容器只能读,不能写