
Docker命令锦集
发布日期:2021-05-08 01:12:18
浏览次数:11
分类:精选文章
本文共 6456 字,大约阅读时间需要 21 分钟。
详细命令见https://docs.docker.com/reference/
(1)、帮助命令
#1、帮助命令docker 命令 --help#2、显示版本信息docker version#3、显示系统信息,包括镜像和容器的数量docker info
(2)、镜像命令
2.1 docker images查看所有本地的主机上的镜像
# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE#解释REPOSITORY 镜像的仓库源TAG 镜像的标签IMAGE ID 镜像的idCREATED 镜像的创建时间SIZE 镜像的大小#可选项 -a, --all Show all images (default hides intermediate images) --digests Show digests -f, --filter filter Filter output based on conditions provided --format string Pretty-print images using a Go template --no-trunc Don't truncate output -q, --quiet Only show numeric IDs
2.2 docker search搜索镜像
#搜索mysql[root@localhost ~]# docker search mysqlNAME DESCRIPTION STARS OFFICIAL AUTOMATEDmysql MySQL is a widely used, open-source relation… 9827 [OK] mariadb MariaDB is a community-developed fork of MyS… 3588 [OK]
2.3 docker pull下载镜像
#使用docker pull 软件名[:版本号],[]表示可写可不写,不写版本号的话,默认下载latest最新版本镜像eg: docker pull mysql or docker pull mysql:5.5
2.4 docker rmi 删除镜像
#1、删除指定的镜像docker rmi -f 镜像id#2、删除所有镜像docker -rmi -f $(docker images -aq)
(3)、容器命令
说明:我们有了镜像才可以创建容器,Linux,下载一个CentOS镜像来测试学习docker pull centos #下载的时候可能会出现Error response from daemon: Get https://...... timeout #vim /etc/docker/daemon.json(若没有自行创建) #写入: { "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"] }#重启一下docker:systemctl daemon-reload systemctl restart docker
3.1 新建容器并启动
docker run [可选参数] image#参数说明 --name="Name" 容器名字 -d 后台方式运行 -it 使用交互方式运行,进入容器查看内容 -p 指定容器的端口 8080:8080 -p 主机端口:容器端口(常用) -p ip:主机端口:容器端口 -p 容器端口 容器端口 -P 随机指定端口#测试,启动并进入容器,查看[root@localhost /]# docker run -it centos /bin/bash[root@d1958ccc6ba4 /]# lsbin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var#从容器中退回主机[root@d1958ccc6ba4 /]# exitexit[root@localhost /]#
3.2 列出所有的运行的容器
#docker ps 列出当前正在运行的容器-a #列出当前正在运行的容器和历史运行过的容器-n=? #显示最近创建的容-q #只显示容器的编号 [root@localhost /]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES[root@localhost /]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESd1958ccc6ba4 centos "/bin/bash" 5 minutes ago Exited (0) 4 minutes ago eloquent_yonath4cc1681031db 5acf0e8da90b "/docker-entrypoint.…" 2 days ago Exited (143) 3 hours ago ES01a603dfa2e148 64a1f920fb0d "docker-entrypoint.s…" 2 days ago Exited (137) 3 hours ago myrabbitmq[root@localhost /]#
3.3 退出容器
exit #直接容器停止并退出Ctrl + P + Q #容器不停止退出
3.4 删除容器
docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -fdocker rm -f $(docker ps -aq) #删除所有的容器docker ps -a -q|xargs docker rm #删除所有的容器
3.5 启动和停止容器的操作
docker start 容器id #启动容器docker restart 容器id #重启容器docker stop 容器id #停止当前正在运行的容器docker kill 容器id #强制停止当前容器
(4)、其它常用命令
4.1 后台启动容器
#命令 docker run -d 镜像名docker run -d centos#问题 使用docker ps,发现centos停止了 #docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
4.2 查看日志
docker logs -ft --tail 10 容器id, 没有日志#自己编写一段shell脚本docker run -d centos /bin/sh -c "while true;do echo 'monologue';sleep 3;done"#[root@localhost /]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES61237efa7194 centos "/bin/sh -c 'while t…" 7 seconds ago Up 6 seconds vigorous_elgamal#显示日志-tf #显示日志--tail number #要显示日志条数[root@localhost /]# docker logs -ft --tail 10 82ddd5f5d71a
4.3 查看容器中进程信息ps
#命令 docker top 容器id[root@localhost /]# docker top 82ddd5f5d71aUID PID PPID C STIME root 12723 12708 0 11:42 root 12933 12723 0 11:47
4.4 查看镜像的源数据
#命令 docker inspect 容器id#测试[root@localhost /]# docker inspect 82ddd5f5d71a[ { "Id": "82ddd5f5d71a2b33538ef961ff0c5e2359bddc68e47bd642ad3f3536d7bca00c", "Created": "2020-08-12T03:42:28.398067121Z", "Path": "/bin/sh", "Args": [ "-c", "while true;do echo monologue;sleep 3;done" ], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 12723, "ExitCode": 0, "Error": "", "StartedAt": "2020-08-12T03:42:28.821749235Z", "FinishedAt": "0001-01-01T00:00:00Z" }, ......
4.5 进入当前正在运行的容器
#我们通常使用的都是后台方式运行的,需要进入容器,修改一些配置#命令docker exec -it 容器id bashshell#测试[root@localhost /]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES82ddd5f5d71a centos "/bin/sh -c 'while t…" 2 hours ago Up 2 hours determined_feistel[root@localhost /]# docker exec -it 82ddd5f5d71a /bin/bash[root@82ddd5f5d71a /]# lsbin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var#方式二:docker attach 容器id#测试[root@localhost ~]# docker attach 82ddd5f5d71a正在执行当前的代码...#docker exec #进入容器后开启一个新的终端,可以在里面操作(常用)#docker attach #进入容器正在执行的终端,不会启动新的进程
4.6 从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的主机路径#查看当前主机目录下[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES#开启docker容器[root@localhost ~]# docker run -it centos /bin/bash[root@localhost opt]# lscontainerd modules rh#进入docker容器内部[root@localhost opt]# docker attach fb66f59ed5ce[root@fb66f59ed5ce /]# cd /opt/#在容器内新建一个文件[root@fb66f59ed5ce opt]# touch test.java[root@fb66f59ed5ce opt]# exitexit#将文件拷贝到主机上[root@localhost opt]# docker cp fb66f59ed5ce:/opt/test.java /opt[root@localhost opt]# lscontainerd modules rh test.java[root@localhost opt]# #拷贝是一个手动的过程,后续可使用-v卷技术实现
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月08日 20时51分29秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Idiot 的间谍网络
2021-05-07
初探SSRF漏洞
2021-05-07
pythonBug入门——从零开始学python
2021-05-07
js-禁止右键菜单代码、禁止复制粘贴代码
2021-05-07
SpringBoot中使用Mybatis访问MySQL数据库(使用xml方式)
2021-05-07
数组--Go语言学习笔记
2021-05-07
Redis (三)——Linux 上安装 Redis
2021-05-07
java 重写(override)和重载(overload)区别
2021-05-07
java 多态类型转换
2021-05-07
常用正则表达式
2021-05-07
XML:采用XHTML和CSS设计可重用可换肤的WEB站点
2021-05-07
Tomcat6中web项目部署路径webapps和wtpwebapps的区别
2021-05-07
Java判断字符串是否为金额
2021-05-07
软件架构-zookeeper快速入门
2021-05-07
angr学习笔记(7)(malloc地址单元符号化)
2021-05-07
「CF149D」括号涂色 区间DP好题
2021-05-07
树状数组 模板总结
2021-05-07
「NOI2015」程序自动分析 并查集题解
2021-05-07
[JSOI2008]Blue Mary的战役地图 Hash题解
2021-05-07
结构型设计在工作中的一些经验总结
2021-05-07