帮助命令
docker version #显示docker版本信息
docker info#显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help#万能命令
帮助文档地址:https://docs.docker.com/
下列介绍的所有命令,如果对其使用或者可选项感兴趣,均可以通过docker 命令 --help查询信息,也可以进入帮助文档查看更详细的信息。
镜像命令
docker images
#REPOSITORY 镜像的仓库源
#TAG 镜像的标签
#IMAGE ID 镜像的id
#CREATED 创建时间
# 可选项
-a --all #列出所有镜像
-q --quiet #只显示镜像的id
docker images查看所有本地的主机上的镜像
docker search 搜索镜像
Options:
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print search using a Go template
--limit int Max number of search results (default 25)
--no-trunc Don't truncate output
# --filter=STARS=3000 搜索出来的镜像就是STARS不小于3000的
byw@DESKTOP-UNSTDQC:~$ docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10583 [OK]
mariadb MariaDB Server is a high performing open sou… 3960 [OK]
docker pull 下载镜像
如果不指定下载版本,则该命令默认下载最新版本的镜像。
docker pull mirrorname #下载默认镜像
docker pull mirrorname[:tag]#下载指定版本镜像(注意冒号不能省略)
byw@DESKTOP-UNSTDQC:~$ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
a076a628af6f: Pull complete #分层下载,docker image的核心:联合文件信息
f6c208f3f991: Pull complete
88a9455a9165: Pull complete
406c9b8427c6: Pull complete
7c88599c0b25: Pull complete
25b5c6debdaf: Pull complete
43a5816f1617: Pull complete
1a8c919e89bf: Pull complete
9f3cf4bd1a07: Pull complete
80539cea118d: Pull complete
201b3cad54ce: Pull complete
944ba37e1c06: Pull complete
Digest:
sha256:feada149cb8ff54eade1336da7c1d080c4a1c7ed82b5e320efb5beebed85ae8c
#签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
分层下载的好处在于不同版本的镜像下载不需要把所有内容下载下来,相同的内容则不需要下载,由不同版本镜像共用。
byw@DESKTOP-UNSTDQC:~$ docker pull mysql:5.7
5.7: Pulling from library/mysql
a076a628af6f: Already exists
f6c208f3f991: Already exists
88a9455a9165: Already exists
406c9b8427c6: Already exists
7c88599c0b25: Already exists
25b5c6debdaf: Already exists
43a5816f1617: Already exists
1831ac1245f4: Pull complete
37677b8c1f79: Pull complete
27e4ac3b0f6e: Pull complete
7227baa8c445: Pull complete Digest: sha256:b3d1eff023f698cd433695c9506171f0d08a8f92a0c8063c1a4d9db9a55808df
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
docker rmi 删除镜像
docker rmi -f 容器id #删除指定的容器
docker rmi -f 容器id 容器id 容器id #删除多个容器
容器命令
有了镜像才可以创建容器,在此下载centos镜像来测试
(镜像和容器的关系可以理解成镜像是光盘,而容器是光盘上装载的软件)
docker pull centos
byw@DESKTOP-UNSTDQC:~$ docker pull centos
Using default tag: latest
latest: Pulling from library/centos
7a0437f04f83: Pull complete
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
新建容器并启动
参数说明
--name="Name" 容器名字 tomcat01 tomcat02,用于区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口
#启动并进入容器
byw@DESKTOP-UNSTDQC:~$ docker run -it centos /bin/bash
[root@20c265a6694b /]#
#退出命令
exit
#从容器退回主机
docker ps # 查看正在运行的容器
docker ps -a #查看运行过的容器
-n=? #显示最近创建得容器
-aq #只显示容器编号
byw@DESKTOP-UNSTDQC:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
byw@DESKTOP-UNSTDQC:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
20c265a6694b centos "/bin/bash" 2 minutes ago Exited (0) 44 seconds ago happy_galois
6680c828adeb hello-world "/hello" About an hour ago Exited (0) About an hour ago adoring_elbakyan
81a39d1a5f89 registry.cn-shanghai.aliyuncs.com/bianyuwei/byw:3 "sh run.sh" 2 days ago Exited (1) 2 days ago nostalgic_napier
aef78050538c registry.cn-shanghai.aliyuncs.com/bianyuwei/byw:2 "sh run.sh" 2 days ago Exited (1) 2 days ago competent_noyce
退出容器
exit #直接停止并退出容器
Ctrl + P + Q #容器不停止退出
删除容器
docker rm 容器id
启动和停止容器的操作
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #停止当前正在运行的容器
后台运行的大坑
#命令 docker run -d 镜像名!
#问题docker ps,发现后台启动的容器停止了
常见的坑:dockers容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止