Docker常用基本命令

docker安装

帮助命令

docker version    # 显示docker的版本信息
docker info		  # 显示docker的系统信息,包括镜像和容器的数量
docker --help 	  # 帮助命令

镜像命令

docker images:查看所有本地主机上的镜像

----------------------------------------------------------------------------------------
➜  ~ docker images -a   
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        8 months ago        13.3kB
--------------------------------------------------------------------------------------
# 表头
REPOSITORY    镜像的仓库源
TAG 		  镜像的标签
IMAGE ID  	  镜像的id
CREATED       镜像的创建时间
SIZE		  酱香的大小

# 主要可选项
-a, --all		# 列出所有镜像
-q, --quiet		# 只显示id

docker search:搜索镜像

➜  ~ docker search mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   9974                [OK]                
mariadb                           MariaDB is a community-developed fork of MyS…   3651                [OK]                
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   728                                     [OK]
......
--------------------------------------------------------------------------------------------
# 主要可选项
-f, --filter filter  根据提供的条件过滤输出        
使用方法:docker search mysql-f=stars=3000 #mysql下载量大于三千的,没错就是用-f=stars=3000我没写错 

docker pull:拉取镜像

docker pull mysql #最新版本
docker pull 镜像:版本号 #指定版本 docker pull mysql:5.7

docker rmi:删除镜像

docker rmi -f 镜像id #带f是强制删除不带的话运行中是不能删除的
# 使用方法
➜  ~ docker images -a # 查看所有镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               latest              84c5f6e03bf0        10 days ago         104MB
mysql               5.7                 ef08065b0a30        10 days ago         448MB
mysql               latest              e1d7dc9731da        10 days ago         544MB
hello-world         latest              bf756fb1ae65        8 months ago        13.3kB
# 删除一个
➜  ~ docker rmi -f e1d7dc9731da                                                      

# 删除多个
➜  ~ docker rmi -f 84c5f6e03bf0 ef08065b0a30
# 删除所有
➜  ~ docker rmi -f $(docker images -aq) 

容器命令

准备:使用docker 下载一个centos镜像

docker pull centos

在这里插入图片描述

新建容器并启动docker run
在这里插入图片描述

docker run -可选项 image
# 可选项说明 一试就知道
--name="Name"	用来区分容器,比如我要启动2个centos的容器一个name给他叫做c1 一个叫做 c2 没毛病吧
-d				使用后台方式运行 
-it				使用交互方式运行,进入容器查看内容 
-p(小写)			自定义指定容器端口,就是自定义映射主机(物理机)的端口 | -p 8080:9090
					-p 主机端口:容器端口
					-p ip:主机端口:容器端口
-P(大写)		随机指定容器端口
----------------------------------------------------------------------------------------
# 测试
# 启动并进入centos的容器
➜  ~ docker run -it centos /bin/bash
-------------------------------  一下为centos容器内的内容 ---------------------
[root@b36e776e43a0 /]# ls	 # 注意:查看容器内的centos ,为基础版本,很多命令都是不完善的!
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@b36e776e43a0 /]# 
[root@b36e776e43a0 /]# exit  # 退出容器 从容器退到主机
exit
➜  ~ 
----------------------------------------------------------------------------
----------------------------------------------------------------------------

列出是所有运行的容器:docker ps

# 可选项说明 一试就知道
-a		# 列出当前正在运行的容器 + 历史运行的过的容器
-n?		# 显示最新创建的容器 -n1 最近一个 -n2 最近俩
-q		# 只显示容器CONTAINER ID(容器id)
----------------------------------------------------------------------------------------
➜  ~ docker ps                      
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
➜  ~ docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
b36e776e43a0        centos              "/bin/bash"         8 minutes ago       Exited (0) 3 minutes ago                       mystifying_meninsky
543b76d47a8b        bf756fb1ae65        "/hello"            39 hours ago        Exited (0) 39 hours ago                        gallant_matsumoto
➜  ~ 
➜  ~ docker ps -aq
b36e776e43a0
543b76d47a8b

退出容器

exit # 停止运行容器并退出
Ctrl + P + Q # 退出不停止运行

删除容器 :docker rm

# 删除一个
docker rm -f 容器id
# 删除多个
docker rm -f 容器id 容器id
# 全部删除
docker rm -f $(docker ps -aq)
docker ps -aq | xargs docker rm -f # 利用linux管道 将查询出来的id作为参数递归删除
## 测试 ##
➜  ~ docker ps -aq | xargs docker rm -f 
91f8c360cacb
c1da758ef69e
18ec27bc18ec
➜  ~ docker ps                          
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
➜  ~ 

启动&停止容器

docker start 容器id		# 启动容器
docker restart 容器id	# 重启容器
docker stop 容器id		# 停止容器
docker kill 容器id		# 强制停止容器
  • 演示:
➜  ~ docker ps   
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
➜  ~ docker run -it centos /bin/bash
[root@927804ea4e80 /]# #                                                                                                                                                                                                                         
➜  ~ docker ps                      
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
927804ea4e80        centos              "/bin/bash"         16 seconds ago      Up 15 seconds                           relaxed_mclaren
➜  ~ docker stop 927804ea4e80              
927804ea4e80
➜  ~ docker ps               
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
➜  ~ 

常用命令

查看日志:
docker logs -f -t --tail -f 容器id

➜  ~ docker run -d -it centos /bin/sh -c "while true;do echo 'testlogs';sleep 1;done" # 后台运行centos 并使用脚本生产日志
0d6e0411161cec5e20e483a99ae08bda76b829f8d2a0cd429a87cf36dc3ba5d1
➜  ~ docker ps                                                                       
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
0d6e0411161c        centos              "/bin/sh -c 'while t…"   5 seconds ago       Up 4 seconds                            hopeful_curran
➜  ~ 
➜  ~ docker logs -ft --tail -f 0d6e0411161c    # 实时查看日志       
2020-09-21T03:10:15.242388978Z testlogs
2020-09-21T03:10:16.243911818Z testlogs
2020-09-21T03:10:17.245877509Z testlogs
2020-09-21T03:10:18.247900311Z testlogs
2020-09-21T03:10:19.259762925Z testlogs

在这里插入图片描述
容器中的进程:docker top 容器id

➜  ~ docker top 0d6e0411161c
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                1591                27623               0                   11:35               ?                   00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
root                27623               27604               0                   11:10               ?                   00:00:00            /bin/sh -c while true;do echo 'testlogs';sleep 1;done
➜  ~ 

查看容器的原数据:docker inspect 容器id

在这里插入图片描述

进入当前正在运行的容器:

  1. docker exec -it 容器id 外壳 (开启一个新的会话)
➜  ~ docker exec -it 0d6e0411161c /bin/bash
-------------------------------------------------------------------------------------------------------------
                                                                                                                                                                                                                                                 ➜  ~ docker exec -it 0d6e0411161c /bin/bash
[root@0d6e0411161c /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@0d6e0411161c /]# 

  1. docker attach 容器id (进入正在运行的会话)
docker  attach 0d6e0411161c
-------------------------------------------------------------------------------------------------------------
# 测试
➜  ~ docker attach 0d6e0411161c   
testlogs
testlogs
testlogs
testlogs
testlogs
testlogs......

从容器内拷贝到主机上:docker cp 容器id:容器内的路径 目的的主机路径
注意:从主机上拷贝到容器内 就是反过来呗docker cp 本地主机路径 目的容器id:容器内的路径

➜  ~ docker run -it centos /bin/bash			# 创建一个新容器
[root@299e981aef3d /]# touch /home/test.java	# 创建一个test.java测试文件用于cp
[root@299e981aef3d home]# exit 					# 退出(不管这个容器有没有都可以cp,只要这个容器存在数据就存在)
exit
➜  ~ docker ps -a								# 查看容器id
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
299e981aef3d        centos              "/bin/bash"         4 minutes ago       Exited (0) 22 seconds ago                       sleepy_rosalind
➜  ~ docker cp 299e981aef3d:/home/test.java  /home			# 进行copy操作
➜  ~ ls /home												# 查看是否copy成功
test.java  www
➜  ~ 

docker安装
docker的命令是非常多的,先记住这些基本命令多练,关注我其它docker相关博客我们一起来学习O(∩_∩)O~~
下一篇部署Nginx。

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页