Docker常用命令
- 镜像命令
docker images //列出本地主机的镜像
[root@dxk ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hello-world latest fce289e99eb9 3 days ago 1.84 kB
REPOSITORY :便是镜像的仓库
TAG:镜像标签
CREATED:镜像创建时间
SIZE:镜像大小
\\参数说明
-a:列出本次所有的镜像(含中间映像层)
-q:只显示镜像ID
--digests:实现镜像的摘要信息
--no-trunc:显示完整的镜像信息
docker search 某个镜像名字
[root@dxk ~]# docker search tomcat
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/tomcat Apache Tomcat is an open source implementa... 2243 [OK]
docker.io docker.io/tomee Apache TomEE is an all-Apache Java EE cert... 59 [OK]
参数:
--no-trunc:显示完整的镜像描述
-s:列出收藏数不小于指定值的镜像
--automated:只列出automated build类型的镜像
docker pull 某个镜像名字 //下载镜像
[root@dxk ~]# docker pull tomcat //等价于docker pull tomcat:latest
[root@dxk ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hello-world latest fce289e99eb9 3 days ago 1.84 kB
docker.io/tomcat latest 1a51cb5e3006 5 days ago 462 MB
docker rmi //删除某个镜像
[root@dxk ~]# docker rmi -f hello-world
Untagged: hello-world:latest
Untagged: docker.io/hello-world@sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Deleted: sha256:fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e
[root@dxk ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/tomcat latest 1a51cb5e3006 5 days ago 462 MB
[root@dxk ~]# docker rmi -f hello-world nginx //删除多个镜像
[root@dxk ~]# docker rmi -f $(docker image -qa) //删除所有镜像
- 容器命令
docker run +镜像 //新建并启动容器
--name=容器名字 //为容器指定一个名称
-d //后台运行容器,并返回容器ID
-i //以交互模式运行容器,通常与-t同时使用
-t //为容器重新分配一个伪输入终端,通常与-i同时同
-P //随机端口映射
-p //指定端口映射
\\启动交互式容器
[root@dxk ~]# docker run -it --name=mycentos 1e1148e4cc2c //如果没有指定容器名字,就会随机分配一个
[root@d04548264fa2 /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
docker ps //列出当前所有在运行得容器
-a //列出当前所有正在运行得容器,历史上运行过的
-l //显示最近创建的容器
-n //显示最近n个创建的容器
-q //静默模式,只显示容器编号
--no-trunc // 不截断输出
[root@dxk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d04548264fa2 1e1148e4cc2c "/bin/bash" 3 minutes ago Up 3 minutes mycentos
//退出容器
exit //容器停止提出
ctrl+P+Q //容器不停止退出
[root@d04548264fa2 /]# exit
exit
[root@dxk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@dxk ~]# docker run -it --name=mycentos2 1e1148e4cc2c
[root@8775063ce68f /]# [root@dxk ~]#
[root@dxk ~]# docker ps //容器还在继续运行
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8775063ce68f 1e1148e4cc2c "/bin/bash" 23 seconds ago Up 21 seconds mycentos2
//启动关闭的容器
[root@dxk ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8775063ce68f 1e1148e4cc2c "/bin/bash" 32 minutes ago Exited (137) 3 minutes ago mycentos2
d04548264fa2 1e1148e4cc2c "/bin/bash" 49 minutes ago Exited (0) 33 minutes ago mycentos
[root@dxk ~]# docker start 8775063ce68f
8775063ce68f
[root@dxk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8775063ce68f 1e1148e4cc2c "/bin/bash" 33 minutes ago Up 2 seconds mycentos2
//重启容器
[root@dxk ~]# docker restart 8775063ce68f
8775063ce68f
//停止容器
[root@dxk ~]# docker stop 8775063ce68f
8775063ce68f
[root@dxk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
//强制停止容器
[root@dxk ~]# docker kill d04548264fa2
d04548264fa2
[root@dxk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
//删除已停止的容器
语法 //docker rm 容器id
[root@dxk ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
337d0d325b2d centos "/bin/bash" 3 minutes ago Exited (137) 2 minutes ago centes3
8775063ce68f 1e1148e4cc2c "/bin/bash" 40 minutes ago Exited (137) 4 minutes ago mycentos2
d04548264fa2 1e1148e4cc2c "/bin/bash" 57 minutes ago Up 22 seconds mycentos
f63974f5e112 1e1148e4cc2c "--name mycentos" 57 minutes ago Created quirky_murdock
[root@dxk ~]# docker rm f63974f5e112 //删除一个容器
f63974f5e112
[root@dxk ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
337d0d325b2d centos "/bin/bash" 5 minutes ago Exited (137) 4 minutes ago centes3
8775063ce68f 1e1148e4cc2c "/bin/bash" 42 minutes ago Exited (137) 6 minutes ago mycentos2
d04548264fa2 1e1148e4cc2c "/bin/bash" 59 minutes ago Up 2 minutes mycentos
//一次性删除多个
[root@dxk ~]# docker rm $(docker ps -qa)
337d0d325b2d
8775063ce68f
13918c4ca76c
e5a765132cdf
421c6a1b94f0
d467cb374ee7
Error response from daemon: You cannot remove a running container d04548264fa25946b9bd55b1ab1377160ab97d326f681931fedf4af145ceeb59. Stop the container before attempting removal or use -f
[root@dxk ~]# docker ps -a //因为此容器正在运行无法删除
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d04548264fa2 1e1148e4cc2c "/bin/bash" About an hour ago Up 4 minutes mycentos
[root@dxk ~]# docker ps -qa | xargs docker rm
//自动守护式容器
docker run -d 容器名
[root@dxk ~]# docker ps -a //此时没有容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@dxk ~]# docker run -d centos
c5ce8c99d85b742088281383d0230d31e3f84be78f2d4a59b514367da91ab82f
[root@dxk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@dxk ~]# docker ps -a //发现容器已经退出了
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5ce8c99d85b centos "/bin/bash" 23 seconds ago Exited (0) 22 seconds ago vibrant_noether
//查看容器日志
[root@dxk ~]# docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"
7a7ef5892f122b0c9685d993c5af610633ec279f7d40c9489a9f22018a65f527
[root@dxk ~]# docker logs -f 7a7ef5892f12
hello zzyy
hello zzyy
hello zzyy
hello zzyy
hello zzyy
hello zzyy
-t \\显示时间
-f \\实时
--tail \\尾部
[root@dxk ~]# docker logs -t -f --tail 3 7a7ef5892f12
2019-01-05T03:19:55.486538000Z hello zzyy
2019-01-05T03:19:57.489055000Z hello zzyy
2019-01-05T03:19:59.491847000Z hello zzyy
2019-01-05T03:20:01.493139000Z hello zzyy
\查看容器内运行的进程
[root@dxk ~]# docker top 7a7ef5892f12
UID PID PPID C STIME TTY TIME CMD
root 6263 6249 0 11:10 ? 00:00:00 /bin/sh -c while true;do echo hello zzyy;sleep 2;done
\查看容器内部细节
[root@dxk ~]# docker inspect 7a7ef5892f12
\进入正在运行的容器并以命令行交互
[root@dxk ~]# docker run -it centos
[root@96261214fdd6 /]# [root@dxk ~]#
[root@dxk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96261214fdd6 centos "/bin/bash" 9 seconds ago Up 8 seconds peaceful_carson
[root@dxk ~]# docker attach 96261214fdd6
[root@96261214fdd6 /]#
[root@dxk ~]# docker exec -it 96261214fdd6 ls -l /tmp //在容器内执行命令得到结果并退出返回
total 4
-rwx------ 1 root root 836 Dec 5 01:37 ks-script-h2MyUP
-rw------- 1 root root 0 Dec 5 01:36 yum.log
[root@dxk ~]# docker exec -it 96261214fdd6 /bin/bash //进入容器
[root@96261214fdd6 /]#
\\exec比attach强大
attach //直接进入容器启动命令的终端,不会启动新的进程
exec //实在容器中打开新的终端,并且可以启动新的进程
\将容器内拷贝文件到主机上
[root@dxk ~]# docker cp 96261214fdd6:/tmp/yum.log /root/
[root@dxk ~]# ls
anaconda-ks.cfg ks-pre.log mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz original-ks.cfg yum.log
\\docker cp 容器id:容器路径 宿主机容器