一、Docker常用命令
Linux下启动docker
systemctl start docker
1、帮助命令
1.1 docker images 列出本地的镜像
统一仓库源可以有多个TAG,代表着这个仓库员的不同版本,我们使用 REPOSITORY:TAG来定义不同的镜像 如果你不指定一个镜像的版本标签,例如你只是用
ubuntu,docker将默认使用ubuntu:latest镜像
携带参数:-a 表示全部的(含中间镜像层)-q 只显示镜像的ID--digests 显示镜像的详细信息
[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest d1165f221234 5 weeks ago 13.3kB各个选项说明:- PEPOSITORY:表示镜像的仓库源- TAG:表示镜像的标签【版本】- CREATED:镜像创建时间- SIZE:镜像大小
1.2 **docker search 某个镜像的名字** 查看dockerhub上的镜像
[root@localhost ~]# docker search tomcatNAME DESCRIPTION STARS OFFICIAL AUTOMATEDtomcat Apache Tomcat is an open source implementati… 2991 [OK]tomee Apache TomEE is an all-Apache Java EE certif… 86 [OK]dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base… 57 [OK]...
1.3 docker pull 镜像名字:tag 拉取镜像到本地
tag可省略,默认最新版 latest
[root@localhost ~]# docker pull tomcatUsing default tag: latestlatest: Pulling from library/tomcat...# docker pull tomcat 等价于 docker pull tomcat:latest
1.4 docker rmi 镜像名字 删除镜像
-f 表示强制删除,如果镜像运行了,那么就需要-f 强制删除
删除单个:docker rmi -f 镜像
删除多个:docker rmi -f 镜像名1:tag 镜像名2:tag
删除全部:docker rmi -f ${docker images -qa}
[root@localhost ~]# docker rmi tomcatUntagged: tomcat:latestUntagged: tomcat@sha256:62ce5fac47750e5508991c0140d96567c3fb2ab3e096d40d714e7ab3db19a21eDeleted: sha256:b72e45a11ad98b68b7054db33a1511cee308d5a98418cbe5e51910b9286f6eec...
3、容器命令
有镜像才能创建出容器,这是根本前提,提前拉取一个 centos docker pull centos
3.1 dcoker ``[options] ``run``[command][arg] ``镜像名 新建并启动容器
opetions 参数说明:— / ---name=“容器的新名字”:为容器指定一个名字-d:后台运行容器,并返回容器ID,也即启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用-t:为容器重新分配一个伪输入终端,通常与-i同时使用-P:随机端口映射-p:指定端口映射,有一下4中方式
ip:hostPort:containerPortip:contrinerPorthostPort:containerPortcontainerPort
-it 启动交互式容器
[root@localhost ~]# docker run -it centos[root@4c73b4cef3b3 /]# lsbin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var进入了docker为我们创建的伪终端 @4c73b4cef3b3
3.2 docker ps [options] 查看docker容器列表
**docker ps** 默认显示当前正在运行的
-a:显示所有正在运行的容器+历史上运行过的-l:显示最近创建的容器-n:显示最近n个创建个容器-q:静默模式,只显示容器编号
[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES4c73b4cef3b3 centos "/bin/bash" 4 minutes ago Exited (130) 40 seconds ago xenodochial_khayyam8bf1414e0265 centos "/bin/bash" 4 minutes ago Exited (130) 4 minutes ago confident_kellere92d9254ea86 tomcat "catalina.sh run" 5 minutes ago Exited (130) 5 minutes ago goofy_hofstadtereffcaf170748 centos "/bin/bash" 7 minutes ago Exited (0) 7 minutes ago funny_tu333f4a151354 centos "/bin/bash" 27 minutes ago Exited (0) 27 minutes ago hardcore_meninskyeecfd6c66604 d1165f221234 "/hello" 8 hours ago Exited (0) 8 hours ago gifted_sammet
3.3 退出容器
前提是在docker创建的交互式终端中
两种方式:
exit:容器停止退出ctrl+p+q:退出容器 但是容器不停止,进行运行- 看4.5 小结
3.4 启动容器【启动已经创建的】
docker start 容器id/容器名
3.4 重启容器【重启已经创建的】
docker restart 容器id/容器名
3.5 停止容器
docker stop 容器id/容器名 温柔停止docker kill 容器id/容器名 强制停止容器【拔电源】
3.6 删除以停止的容器
3.7 一次性删除多个容器
docker rm -f ${docker ps -a -q}docker ps -a -q | xargs docker rm
4、容器【重要】
4.1 启动守护式容器并返回容器id
docker run ``-d`` centos 启动后查看以运行的docker容器 发现并没有
[root@localhost ~]# docker run -d centoscbfde531b8fa446b121cd855afabf3e774777536976cbd58f8e17aeb6f42932d[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES[root@localhost ~]#容器以退出
问题:使用docker run -d centos 后再使用 docker ps 发现容器已退出
很重要的要说明一点:Docker容器后台运行,就必须有一个前台进程
容器运行的命令如果不是哪些一直挂起的命令(比如运行top,tail),就是会自动退出。
所以最佳解决方案是:将你要运行的程序以前台进行的形式进行。
4.2 查看容器日志
容器id可以通过 docker ps 获得
docker logs -f -t --tail 容器id-t 加入时间戳-f 不停的追加--tail 数字 显示最后多少条
4.3 查看容器内运行的进程
容器id可以通过 docker ps 获得
docker top 容器id
4.4 查看容器内部细节
docker inspect 容器ID
以JSON串的形式告诉你容器的全部细节
4.5 进入正在运行的容器,并以命令行交互
这就是之前的 ctrl + p+q 退出容器但是不退出,从这里进去退出来的容器
两种方式:
docker exec -it 容器ID bashSell隔山打牛,bashshell的直接把结果给你 【在外面干活】docker attach 容器ID进去容器交互式模式 【进去之后在干活】
4.6 从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
