Docker常用命令总结

373 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

Docker常用命令

帮助命令

docker version
​
docker 命令 --help
​
docker info

镜像命令

docker images 查看所有本地主机上的镜像文件

可选项

 -a --all       #列出所有镜像
 -q --quiet     #只显示镜像的id

docker search 搜索镜像

docker search mysql 搜索mysql镜像
# 可选项
-- filters=STARS=3000 #搜索出镜像stars大于3000的镜像

docker pull 下载镜像

docker pull mysql:5.7

docker rmi 删除镜像

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

容器命令

有了镜像才能创建容器,下载centos镜像测试学习

docker pull centos

新建容器并启动

docker run [可选参数] image
​
#参数说明
--name="Name"       容器名字 xxx01 xxx02,用来区分容器
-d                  后台运行
-it                 使用交互方式运行,进入容器查看内容
-p                  指定容器的端口 -p 8080:8080
    -p ip:主机端口自:容器端口
    -p 主机端口:容器端口(常用)
    -p 容器端口
    容器端口
-P                  随机指定端口
​
[root@VM-16-10-centos /]# docker run -it centos /bin/bash
[root@0c6ab50f2a8c /]# ls
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@0c6ab50f2a8c /]# exit
exit
[root@VM-16-10-centos /]# ls
bin   data  etc   lib    log         media  opt    proc  run   srv  tmp  var
boot  dev   home  lib64  lost+found  mnt    patch  root  sbin  sys  usr  www

列出所有运行的容器

# docker ps 命令
        #列出当前正在运行的容器
-a      #列出当前正在运行的容器+历史运行过的容器
-n=x    #列出最近创建的x条容器
-q      #只显示容器编号

退出容器

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

删除容器

docker rm 容器id                  #删除指定的容器,不能删除正在运行的容器,若要强制删除rm -rf
docker rm -f $(docker ps -aq)    #删除所有容器
docker ps -a -q|xargs docker rm  #删除所有容器

启动停止容器

docker start 容器id       #启动融洽
docker restart 容器id     #重启容器
docker stop 容器id        #停止容器
docker kill 容器id        #强制停止当前容器

其他常用命令

后台启动容器

#命令 docker run -d 镜像名
[root@VM-16-10-centos /]# docker run -d centos
#问题docker ps,发现centos没有运行——docker容器后台运行后,就必须要有一个前台进程,docker若发现没有应用则会立即停止

查看日志

#命令 docker logs -f -t --tail n 容器id
-t      #时间戳
-f      #跟踪日志输出
[root@VM-16-10-centos /]# docker logs -f -t --tail 10 7110c7daf02d

查看容器中进程信息

# 命令 docker top 容器id
[root@VM-16-10-centos /]# docker top 7110c7daf02d
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                6988                6968                0                   08:23               pts/0               00:00:00            /bin/bash

查看镜像的原数据

# 命令 docker inspect 容器id

进入当前正在运行的容器

# 命令
docker exec it 容器id bashshell
docker attach 容器id
# 测试
[root@VM-16-10-centos /]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED        STATUS        PORTS     NAMES
7110c7daf02d   centos    "/bin/bash"   24 hours ago   Up 24 hours             romantic_vaughan
[root@VM-16-10-centos /]# docker exec -it 7110c7daf02d /bin/bash
[root@7110c7daf02d /]# ls
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@7110c7daf02d /]# exit
exit
[root@VM-16-10-centos /]# ls
bin   data  etc   lib    log         media  opt    proc  run   srv  tmp  var
boot  dev   home  lib64  lost+found  mnt    patch  root  sbin  sys  usr  www
​
# docker attch 容器id
# 若有正在运行的程序则attach会进入正在运行的程序,不会启动新进程

从容器内拷贝文件到主机

# 命令 docker cp 容器id:容器路径  主机路径
[root@7110c7daf02d /]# cd home
[root@7110c7daf02d home]# touch Sentiment.java
[root@7110c7daf02d home]# ls
Sentiment.java
[root@7110c7daf02d home]# exit
exit
[root@VM-16-10-centos /]# docker cp 7110c7daf02d:/home/Sentiment.java /home
[root@VM-16-10-centos /]# cd home
[root@VM-16-10-centos home]# ls
lighthouse  Sentiment.java  www