Docker 常用命令

Command-line reference: https://docs.docker.com/reference/

常用命令

帮助命令

docker version
docker info
docker <COMMAND> --help

镜像基本命令

# 查看所有本地主机上的镜像
docker images
	-a, --all
	-q, --quiet		# 只显示镜像的 id

# 搜索镜像
docker search
	-filter=STARS=3000		# 搜索 stars 大于 3000 的镜像


# 下载镜像
docker pull <IMAGENAME>[:<TAG>]
	# 如果不写 tag, 默认是 latest

# 删除镜像
docker rmi -f <IMAGE ID>						# 删除指定镜像, `rmi`=`remove image`
docker rmi -f <IMAGE ID> <IMAGE ID> <IMAGE ID>	# 删除多个镜像
docker rmi -f $(docker images -aq)				# 删除全部容器

容器基本命令

# 新建并启动容器
docker run [optional parameters] <IMAGE>
	--name <NAME>	# 将新容器命名为 NAME
	-d				# 以后台方式运行
	-it				# 使用交互方式运行
		# 例如 sudo docker run -it centos /bin/bash
	-p				# 指定容器的端口, 有下面三种形式
		-p <IP ADDRESS>:<HOST PORT>:<CONTAINER PORT>
		-p <HOST PORT>:<CONTAINER PORT>		# 最常用的一种形式
		-p <CONTAINER PORT>
	-P				# 随机指定端口

# 列出所有运行中的容器
docker ps [optional parameters] # 列出当前正在运行的容器
	-a							# 列出所有容器, 包括正在运行的和历史上运行过的
	-n=<NUMBER>					# 显示最近创建的 NUMBER 个容器
	-q							# 只显示 container id


# 退出容器
exit			# 退出并停止容器
`Ctrl`+`P`+`Q`	# 退出但不停止容器


# 删除容器
docker rm [optional parameters] <CONTAINER ID>	# 删除指定容器
	-f											# 强制删除指定容器
docker rm -f $(docker ps -aq)					# 强制删除所有容器
sudo docker ps -aq | xargs sudo docker rm -f	# 同上, 只不过使用了管道


# 启动和停止容器
docker start <CONTAINER ID>
docker restart <CONTAINER ID>
docker stop <CONTAINER ID>	# 执行清理操作后停止指定容器
docker kill <CONTAINER ID>	# 强制停止指定的容器

查看日志, 元数据, 进程

# 查看日志
docker logs -tf --tail <NUMBER> <CONGTAINER ID>	# 打印容器的倒数 NUMBER 条日志
	-t											#一并打印时间
	# 可以以 sudo docker run -d centos /bin/sh -c "while true;do echo oldiron666;sleep 1;done" 为例
	# 坑:
		# 新建容器 `docker run -d <IAMGE NAME>` 后, 使用 `docker ps` 查看新容器状态, 发现新容器停止了.
		# 原因是 docker 容器使用 `-d` 后台运行时, 必须要有一个前台进程, 若 docker 发现没有后台进程, 
		# 则自动停止. 
		# 常见的坑还有部署 nginx 后, 发现自己并没有提供服务, 就会立刻停止.


# 查看容器的进程信息
docker top <CONTAINER ID>	# 查看容器进程信息


# 查看容器的元数据
docker inspect <CONTAINER ID>

进入容器的命令和拷贝命令

# 进入当前正在运行的容器
# 方式一:
	docker exec -it <CONTAINER ID> <SHELL PATH>
	# 例如: sudo docker exec -it d6f5164b1a2b /bin/bash
# 方式二:
	docker attach <CONTAINER ID>
# 两者的区别是: `docker exec` 会在进入容器后开启一个新的终端, 较为常用;
# `docker attach` 会进入容器正在执行的终端, 不会启动新的进程.


# 拷贝命令
docker cp <PATH> <PATH>
# 例如: sudo docker cp d6f5164b1a2b:/home/FileInDocker.java /home/wan
#    或 sudo docker cp /home/wan/FileInHost.java d6f5164b1a2b:/home/
# 拷贝是是个手动过程, 后面使用 `-v` 数据卷技术更方便
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值