一、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 images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 5 weeks ago 13.3kB
各个选项说明:
- PEPOSITORY:表示镜像的仓库源
- TAG:表示镜像的标签【版本】
- CREATED:镜像创建时间
- SIZE:镜像大小
1.2 **docker search 某个镜像的名字**
查看dockerhub上的镜像
[root@localhost ~]# docker search tomcat
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
tomcat 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 tomcat
Using default tag: latest
latest: 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 tomcat
Untagged: tomcat:latest
Untagged: tomcat@sha256:62ce5fac47750e5508991c0140d96567c3fb2ab3e096d40d714e7ab3db19a21e
Deleted: 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:containerPort
ip:contrinerPort
hostPort:containerPort
containerPort
-it 启动交互式容器
[root@localhost ~]# docker run -it centos
[root@4c73b4cef3b3 /]# ls
bin 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 -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c73b4cef3b3 centos "/bin/bash" 4 minutes ago Exited (130) 40 seconds ago xenodochial_khayyam
8bf1414e0265 centos "/bin/bash" 4 minutes ago Exited (130) 4 minutes ago confident_keller
e92d9254ea86 tomcat "catalina.sh run" 5 minutes ago Exited (130) 5 minutes ago goofy_hofstadter
effcaf170748 centos "/bin/bash" 7 minutes ago Exited (0) 7 minutes ago funny_tu
333f4a151354 centos "/bin/bash" 27 minutes ago Exited (0) 27 minutes ago hardcore_meninsky
eecfd6c66604 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 centos
cbfde531b8fa446b121cd855afabf3e774777536976cbd58f8e17aeb6f42932d
[root@localhost ~]# docker ps
CONTAINER 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:容器内路径 目的主机路径