持续创作,加速成长!这是我参与「掘金日新计划 · 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