docker基础命令

容器生命周期管理

run			创建一个新容器并运行
start		开启一个容器并使其在后台运行
stop		停止一个容器
restart		重启一个容器
kill		杀掉一个容器进程
rm			删除容器
pause		暂停容器
unpause		恢复暂停容器
create		从镜像中创建一个容器
exec		对一个容器执行shell命令

容器操作

ps			列出容器
inspect		获取容器或镜像的元数据
top			查看正在运行中的容器进程信息
attach		链接正在运行的容器
events		从docker服务器获取事件
logs		获取docker日志
wait		让一个容器进入等待,使其进入阻塞状态
export		讲一个容器的文件系统打包至tar
port		列出一个容器的端口映射情况
container	管理已经运行的容器的
deploy		部署新的堆栈或更新已有堆栈的
update		更新容器
rename		重命名容器
volume		卷管理

容器文件系统操作

commit		提交一个容器的文件系统,使之生成一个新的镜像
cp			向一个正在运行的容器复制文件,或将容器中的文件复制出来
diff		检查一个容器文件系统更改情况

镜像仓库操作

login		docker登入
logout		docker登出
pull		拉取镜像
push		推送镜像至服务器
search		在docker hub上查询镜像

镜像管理

images		列出镜像
rmi       删除镜像
tag	   		修改本地某一镜像的标记,使其镜像属于某一仓库
build	   	通过指定Dockerfile文件编译镜像
history	   	查看镜像历史
save	   	将制定镜像保存成tar文件
load	   	从tar中恢复镜像
import	   	从tar中创建一个新镜像
checkpoint 	设置checkpoint,类似于恢复点,可以让镜像撤销到曾经设置的某一个checkpoint上
image	   	docker镜像管理
manifest   	docker镜像清单管理
trust	   	docker可信镜像管理

集群管理

swarm    	docker集群管理工具
node	 	docker集群节点控制
stack	 	docker集群堆栈管理

其他命令

info    	查询docker信息
version		查询docker版本
system		docker系统管理
stats   	docker容器资源使用统计
config		管理docker配置
network		docker网络管理
plugin		docker插件管理
secret		docker敏感信息管理
service		docker服务管理

常用docker命令语法

镜像相关

1、搜索镜像文件

docker search [OPTIONS] TERM

--automated :只列出 automated build类型的镜像;

--no-trunc :显示完整的镜像描述;

-s :列出收藏数不小于指定值的镜像。

2、列出全部镜像文件

docker images [OPTIONS] [REPOSITORY[:TAG]]
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);

--digests :显示镜像的摘要信息;

-f :显示满足条件的镜像;

--format :指定返回值的模板文件;

--no-trunc :显示完整的镜像信息;

-q :只显示镜像ID。

3、拉去镜像文件

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

-a :拉取所有 tagged 镜像

--disable-content-trust :忽略镜像的校验,默认开启

例如:docker pull nginx 等价于docker pull nginx:latest

4、删除镜像文件

docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS说明

	-f :强制删除;

	--no-prune :不移除该镜像的过程镜像,默认移除;

例如:
     docker rmi -f nginx 等价于 docker rmi -f nginx:latest
     删除单个:docker rmi -f 镜像ID
     删除多个:docker rmi -f 镜像名1:TAG 镜像名2:TAG
     删除全部:docker rmi -f $(docker images -aq)

容器相关

1、新建并启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS(常用)说明:

	-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

	-d: 后台运行容器,并返回容器ID;

	-i: 以交互模式运行容器,通常与 -t 同时使用;

	-P: 随机端口映射,容器内部端口随机映射到主机的高端口

	-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

	-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

	--name="nginx-lb": 为容器指定一个名称;

	--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

	--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

	-h "mars": 指定容器的hostname;

	-e username="ritchie": 设置环境变量;

	--env-file=[]: 从指定文件读入环境变量;

	--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

	-m :设置容器使用内存最大值;

	--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

	--link=[]: 添加链接到另一个容器;

	--expose=[]: 开放一个端口或一组端口;

	--volume , -v: 绑定一个卷

2、列出容器列表

docker ps [OPTIONS]

OPTIONS说明:

    -a :显示所有的容器,包括未运行的。

    -f :根据条件过滤显示的内容。

    --format :指定返回值的模板文件。

    -l :显示最近创建的容器。

    -n :列出最近创建的n个容器。

    --no-trunc :不截断输出。

    -q :静默模式,只显示容器编号。

    -s :显示总的文件大小。

3、退出容器

exit         容器停止退出
Ctrl+P+Q     容器不停止退出

4、启动容器、停止和重启容器

docker start [OPTIONS] CONTAINER [CONTAINER...]
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker restart [OPTIONS] CONTAINER [CONTAINER...]

5、删除容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS说明:

    -f :通过 SIGKILL 信号强制删除一个运行中的容器。

    -l :移除容器间的网络连接,而非容器本身。

    -v :删除与容器关联的卷。

6、查看docker日志

docker logs [OPTIONS] CONTAINER

OPTIONS说明:

    -f : 跟踪日志输出,跟随最近的日志打印

    --since :显示某个开始时间的所有日志

    -t : 显示时间戳

    --tail :仅列出最新N条容器日志

7、查看docker内进程

docker top [OPTIONS] CONTAINER [ps OPTIONS]

8、获取容器的元数据

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

OPTIONS说明:

	-f :指定返回值的模板文件。

	-s :显示总的文件大小。

	--type :为指定类型返回JSON。

9、进入容器

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS说明:

    -d :分离模式: 在后台运行

    -i :即使没有附加也保持STDIN 打开

    -t :分配一个伪终端