Docker02_docker的常用命令
Docker官方文档地址:https://hub.docker.com/
docker的帮助命令
# 查看 docker 的版本
docker version
# 查看 docker 的详细信息(系统信息、镜像和容器的数量)
docker info
# 查看 docker 的所有命令
docker --help
docker的镜像命令
- 查看镜像
# 查看所有的本地镜像
[root@izbp10tup89om84qulgxbsz ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 10 months ago 13.3kB
# 解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的ID
CREATED 镜像的创建时间
SIZE 镜像的大小
# 可选项
[root@izbp10tup89om84qulgxbsz ~]# docker images --help
Options:
-a, --all Show all images (default hides intermediate images)(列出所有的镜像)
-q, --quiet Only show numeric IDs (只显示镜像的ID)
# 列出所有的镜像且只显示ID
[root@izbp10tup89om84qulgxbsz ~]# docker images -aq
bf756fb1ae65
- 搜索镜像
# 从DockerHub仓库中搜索镜像
[root@izbp10tup89om84qulgxbsz ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10129 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3724 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 740 [OK]
# 可选项
[root@izbp10tup89om84qulgxbsz ~]# docker search --help
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
# 搜索收藏量不小于5000的镜像
[root@izbp10tup89om84qulgxbsz ~]# docker search mysql --filter=STARS=5000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10129 [OK]
- 下载镜像
# 下载镜像 docker pull 镜像名[:tag]
[root@izbp10tup89om84qulgxbsz ~]# docker pull mysql
Using default tag: latest # 如果不指定tag,就会下载最新版的镜像
latest: Pulling from library/mysql
bb79b6b2107f: Pull complete # 联合文件系统的分层下载
49e22f6fb9f7: Pull complete
842b1255668c: Pull complete
9f48d1f43000: Pull complete
c693f0615bce: Pull complete
8a621b9dbed2: Pull complete
0807d32aef13: Pull complete
a56aca0feb17: Pull complete
de9d45fd0f07: Pull complete
1d68a49161cc: Pull complete
d16d318b774e: Pull complete
49e112c55976: Pull complete
Digest: sha256:8c17271df53ee3b843d6e16d46cff13f22c9c04d6982eb15a9a47bd5c9ac7e2d # 签名信息(防伪)
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 真实地址 docker pull mysql 等价于 docker pull docker.io/library/mysql:latest
# 下载镜像并指定版本
[root@izbp10tup89om84qulgxbsz ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
bb79b6b2107f: Already exists # 分层下载,该文件块在下载最新版时已经下载了就不会重复下载,极大地节省内存
49e22f6fb9f7: Already exists
842b1255668c: Already exists
9f48d1f43000: Already exists
c693f0615bce: Already exists
8a621b9dbed2: Already exists
0807d32aef13: Already exists
f15d42f48bd9: Pull complete
098ceecc0c8d: Pull complete
b6fead9737bc: Pull complete
351d223d3d76: Pull complete
Digest: sha256:4d2b34e99c14edb99cdd95ddad4d9aa7ea3f2c4405ff0c3509a29dc40bcb10ef
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
版本可以在官方文档中查询:
- 删除镜像
# 根据镜像的ID删除
[root@izbp10tup89om84qulgxbsz ~]# docker rmi -f 1b12f2e9257b
# 删除所有的镜像
[root@izbp10tup89om84qulgxbsz ~]# docker rmi -f $(docker images -aq)
docker的容器命令
说明:容器需要通过镜像创建,首先下载一个 centos 镜像:
[root@izbp10tup89om84qulgxbsz ~]# docker pull centos
docker run [可选参数] image
# 参数说明
--name="Name" 给容器起名
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p (小写p)指定容器的端口
-p 主机端口:容器端口 (常用)
-p 容器端口
-P (大写P)随机指定端口
启动 centos镜像并进入容器,查看目录并退出容器:
[root@izbp10tup89om84qulgxbsz ~]# docker run -it centos /bin/bash
[root@14ce3ccc03d1 /]#
[root@14ce3ccc03d1 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@14ce3ccc03d1 /]# exit
exit
[root@izbp10tup89om84qulgxbsz ~]#
列出所有运行中的容器:
# 查看正在运行中的容器
[root@izbp10tup89om84qulgxbsz ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 查看所有(正在运行和曾经运行过的)容器
[root@izbp10tup89om84qulgxbsz ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
14ce3ccc03d1 centos "/bin/bash" 3 minutes ago Exited (0) About a minute ago lucid_robinson
a57b7706a90b bf756fb1ae65 "/hello" 22 hours ago Exited (0) 22 hours ago jovial_morse
# 显示最近创建的1个容器
[root@izbp10tup89om84qulgxbsz ~]# docker ps -a -n=1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
14ce3ccc03d1 centos "/bin/bash" 6 minutes ago Exited (0) 4 minutes ago lucid_robinson
# 查看所有(正在运行和曾经运行过的)容器,只显示容器的编号
[root@izbp10tup89om84qulgxbsz ~]# docker ps -aq
14ce3ccc03d1
a57b7706a90b
退出容器:
# 容器停止并退出
exit
# 容器不停止退出
Ctrl + P + Q
删除容器:
# 根据容器id删除容器(不能删除正在运行中的容器)
docker rm 容器id
# 强制删除指定容器(正在运行中的容器也可删除)
docker rm -f 容器id
# 删除所有的容器
docker rm -f $(docker ps -aq)
启动和停止容器:
# 启动容器
docker start 容器id
# 重启容器
docker restart 容器id
# 停止当前正在运行中的容器
docker stop 容器id
# 强制停止当前容器
docker kill 容器id
容器的常用其他命令:
后台启动容器:
# 注意:后台启动后,该容器仍然是停止状态
[root@izbp10tup89om84qulgxbsz ~]# docker run -d centos
48af775d21ca29566773af17346cbf5afb7c900546bf4a0de49cde0ae5180021
[root@izbp10tup89om84qulgxbsz ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
48af775d21ca centos "/bin/bash" 11 seconds ago Exited (0) 10 seconds ago laughing_mccarthy
日志命令:
# 显示指定行数的日志
docker logs -tf --tail 10 fa3301b94b9f
# 参数解释
-tf 显示日志
--tail 10 显示日志条数
查看容器中的进程信息:
[root@izbp10tup89om84qulgxbsz ~]# docker top fa3301b94b9f
UID PID PPID C STIME TTY TIME CMD
root 20198 20174 0 14:25 pts/0 00:00:00 /bin/bash
查看容器的元数据信息:
docker inspect fa3301b94b9f
进入当前正在运行中的容器:
# 方式1:进入容器后开启一个新的终端
[root@izbp10tup89om84qulgxbsz ~]# docker exec -it fa3301b94b9f /bin/bash
[root@fa3301b94b9f /]#
# 方式2: 进入容器正在进行的终端,不会启动新进程
[root@izbp10tup89om84qulgxbsz ~]# docker attach fa3301b94b9f
[root@fa3301b94b9f /]#
从容器内拷贝文件至主机:
docker cp 容器id:容器内路径 目的主机的路径
- 在容器的home目录下创建一个文件:
[root@fa3301b94b9f /]# cd home
[root@fa3301b94b9f home]# touch blu.txt
[root@fa3301b94b9f home]# ls
blu.txt
- 将文件拷贝至主机:
[root@izbp10tup89om84qulgxbsz ~]# docker cp fa3301b94b9f:/home/blu.txt /home
[root@izbp10tup89om84qulgxbsz ~]# cd /home
[root@izbp10tup89om84qulgxbsz home]# ll
total 4
drwx------ 4 blu blu 4096 Sep 22 22:02 blu
-rw-r--r-- 1 root root 0 Nov 6 14:41 blu.txt
将当前容器制作成镜像:
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名
# 启动 tomcat 镜像
docker run -it -p 8000:8080 tomcat
# 进入 tomcat 容器
docker exec -it a181f6fde91f /bin/bash
# 将 webapps.dist 下的所有文件复制进 webapps 目录下
cp -r webapps.dist/* webapps
# 退出容器,提交镜像
docker commit -a="BLU" -m="add webapps app" a181f6fde91f tomcat-blu:1.0
# 查看本地镜像
[root@izbp10tup89om84qulgxbsz ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat-blu 1.0 792cfe32fbe1 7 seconds ago 653MB
tomcat latest dab3cf97dd54 5 days ago 648MB