Docker02_docker的常用命令

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值