1.20 docker 基础

![docker](./image1/docker01.png)

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 容器只能读,不能写

Last updated