docker常用命令

1、常用命令汇总

docker info #守护进程的系统资源设置,overlay存储引擎,决定镜像层数
docker search #Docker 仓库的查询
docker pull #Docker 仓库镜像的下载
docker images #Docker 镜像的查询,镜像ID或者镜像名+版本号的方式确定唯一性
docker rmi #Docker 镜像的删除
dockef rm #Docker 容器的删除
docker rmi -f #Docker 镜像的强制删除,这样就不需要先删掉正在使用镜像的容器
docker ps #查询正在运行的容器
docker ps -a #查询所有状态的容器,运行、关闭、暂停
docker ps -a -q #简化输出,只保留id
docker run #容器的创建启动,从镜像启动容器
docker start/stop/restart #容器启动停止与重启
#Docker 指令除了单条使用外,还支持赋值、解析变量、嵌套使用
docker rm -f $(docker ps -a -q) #删除所有容器

每个容器被创建后,都会分配一个 CONTAINER ID 作为容器的唯一标示,后续对容器的启动、停止、修改、删除等所有操作,都是通过 CONTAINER ID 来完成,偏向于数据库概念中的主键
docker ps --no-trunc #完全展示信息,所有正在运行的容器
docker start/stop/restart #容器启动停止与重启
docker start/stop MywordPress #通过容器别名启动/停止
docker inspect MywordPress #查看容器所有基本信息
docker logs MywordPress #查看容器日志,实质是容器前台进程的日志
docker stats MywordPress #查看容器所占用的系统资源
docker exec #容器id 容器内执行的命令, 在容器内执行命令
docker exec -it 容器id /bin/bash #登入容器的bash

2、帮助命令

docker version #现实docker的版本信息
docker info #显示docker系统信息,包括镜像和容器的数量
docker --help

3、镜像命令

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

[root@localhost docker]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    bf756fb1ae65   12 months ago   13.3kB

#解释
REPOSITORY  	 镜像的仓库源
TAG         		 镜像的标签
IMAGE ID    		 镜像的id
CREATED     		 镜像的创建时间
SIZE        		 镜像的大小
docker search 		#搜索镜像
[root@localhost docker]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10418     [OK]       
mariadb                           MariaDB is a community-developed fork of MyS…   3866      [OK]   

#可选项,可以通过搜索来过滤
–filter=STARS=3000 #搜索出来的镜像就是STARS大于3000的

docker pull #下载镜像
#下载镜像 docker pull 镜像名[:tag]

[root@localhost docker]# docker pull mysql
Using default tag: latest #如果不写tag,默认是最新
latest: Pulling from library/mysql
a076a628af6f: Pull complete  # 分层下载,docker image的核心,联合文件系统
f6c208f3f991: Pull complete 
88a9455a9165: Pull complete 
406c9b8427c6: Pull complete 
7c88599c0b25: Pull complete 
25b5c6debdaf: Pull complete 
43a5816f1617: Pull complete 
1a8c919e89bf: Pull complete 
9f3cf4bd1a07: Pull complete 
80539cea118d: Pull complete 
201b3cad54ce: Pull complete 
944ba37e1c06: Pull complete 
Digest: sha256:feada149cb8ff54eade1336da7c1d080c4a1c7ed82b5e320efb5beebed85ae8c #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #真实地址

docker pull mysql # 等价于
docker pull docker.io/library/mysql:latest
#指定版本下载
docker pull mysql:5.7

docker rmi #删除镜像
docker rmi -f 镜像id #删除指定的镜像
docker rmi -f 镜像id 镜像id 镜像id #删除多个镜像
docker rmi -f $(docker images -aq) #删除全部的镜像

4、容器命令

说明:有了镜像才可以创建容器,拉取一个centos测试
docker pull centos

#新建容器并启动 — docker run
docker run [可选参数] image
#参数说明
–name=“Name” 容器名字 tomcat01,tomcat02,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器内部查看内容
-p 指定容器端口 -p 8080:80
-P 随机指定端口

#测试,启动并进入容器
[root@localhost docker]# docker run -it centos /bin/bash 
#/bin/bash是操作台
[root@b39c31073d93 /]# ls  #查看容器内的centos,基础版,命令不完善
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr var
#从容器中退回主机 exit
[root@b39c31073d93 /]# exit
exit
[root@localhost docker]# ls
buildkit  containers  image  network  overlay2  plugins  runtimes  swarm  tmp  trust  volumes
[root@localhost docker]#

docker ps
列出所有的运行的容器 — docker ps
#docker ps #列出当前正在运行的容器
-a #列出当前正在运行的容器+历史运行过的容器
-h=n #指定列出最近创建的n个容器
-q #只显示容器编号

退出容器
exit #直接容器停止并退出
Ctrl+P+Q #容器不停止退出

删除容器
docker rm 容器id #删除指定容器,不能删除正在运行的,如果强制退出 rm -f
docker rm -f $(docker ps -aq) #删除所有容器
docker ps -aq|xargs docker rm #删除所有容器

启停容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止容器

后台启动容器

#命令 docker run -d 镜像名
[root@localhost docker]# docker run -d centos
35da15ca7202429045677e3c460780881fc6ab0b87edfd0950880c1958ad345e
[root@localhost docker]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

#问题,docker ps一下,发现centos停止了
#坑:docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
#nginx ,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

查看日志
docker logs -ft --tail number 容器
#自己编写一段shell脚本,使容器有运行
#-tf 显示日志,t是时间戳,f是逐条显示
#–tail number 要显示的日志条数

查看进程信息
#命令 docker top 容器id

查看容器元数据
docker inspect 容器id

进入正在运行的容器
#我们通常是用后台运行容器,需要进入容器,修改一些配置
docker exec -it 容器id

[root@localhost docker]# docker exec -it 4d293569fb0d /bin/bash

#方法二:
docker attach 容器id

[root@localhost docker]# docker attach 4d293569fb0d

正在执行的当前代码
#docker exec #进入容器后开启一个新的终端,可以在里面操作(常用)
#docker attach #进入容器正在执行的终端,不创建进程

从容器拷贝文件到主机
docker cp 容器id:容器内路径 主机路径

[root@localhost home]# docker cp 0eb76c1ed9de:/home/test.txt /home

5、命令小结

attach # 当前 shell 下 attach 连接指定运行镜像
build # 通过 Dockerfile 定制镜像
commit # 提交当前容器为新的镜像
cp #从容器中拷贝指定文件或者目录到宿主机中
create # 创建一个新的容器,同 run,但不启动容器
diff # 查看 docker 容器变化
events # 从 docker 服务获取容器实时事件
exec # 在已存在的容器上运行命令
export # 导出容器的内容流作为一个 tar 归档文件[对应 import ]
history # 展示一个镜像形成历史
images # 列出系统当前镜像
import # 从tar包中的内容创建一个新的文件系统映像[对应export]
info # 显示系统相关信息
inspect # 查看容器详细信息
kill # kill 指定 docker 容器
load # 从一个 tar 包中加载一个镜像[对应 save]
login # 注册或者登陆一个 docker 源服务器
logout # 从当前 Docker registry 退出
logs # 输出当前容器日志信息
port # 查看映射端口对应的容器内部源端口
pause # 暂停容器
ps # 列出容器列表
pull # 从docker镜像源服务器拉取指定镜像或者库镜像
push # 推送指定镜像或者库镜像至docker源服务器
restart # 重启运行的容器
rm # 移除一个或者多个容器
rmi # 移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]
run # 创建一个新的容器并运行一个命令
save # 保存一个镜像为一个 tar 包[对应 load]
search # 在 docker hub 中搜索镜像
start # 启动容器
stop # 停止容器
tag # 给源中镜像打标签
top # 查看容器中运行的进程信息
unpause # 取消暂停容器
version # 查看 docker 版本号
wait # 截取容器停止时的退出状态值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值