Docker系列 (常用基础命令)

Docker的常用命令

帮助命令

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

帮助文档的地址

在这里插入图片描述
在这里插入图片描述
帮助文档地址:https://docs.docker.com/reference/

镜像命令

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

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        10 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…   10171               [OK]
mariadb                           MariaDB is a community-developed fork of MyS…   3743                [OK]

# 可选项,通过收藏来过滤
	--filter=STARS=3000		搜索出来的镜像就是STARS大于3000

在这里插入图片描述

docker pull 下载镜像

# 下载镜像 docker pull 镜像名[:TAG]
[root@iZb6u9q07jrcg8Z ~]# docker pull mysql
Using default tag: latest		# 如果不写TAG,默认是 latest 最新版
latest: Pulling from library/mysql
bb79b6b2107f: Pull complete		# 分层下载,docker iamge的核心 联合文件系统
49e22f6fb9f7: Pull complete
842b1255668c: Pull complete
9f48d1f43000: Pull complete
c693f0615bce: Pull complete
8a621b9dbed2: Pull complete
0807d32aef13: Pull complete
a56aca0feb17: Pull complete
de9d45fd0f07: Downloading [==============================>                    ]   69.3MB/112.8MB
1d68a49161cc: Download complete
d16d318b774e: Download complete
49e112c55976: Download complete
Digest: sha256:8c17271df53ee3b843d6e16d46cff13f22c9c04d6982eb15a9a47bd5c9ac7e2d		#  签名信息
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest		#真实地址

# 等价于
docker pull mysql  =  docker pull docker pull mysql

# 指定版本下载
docker pull mysql:5.7

在这里插入图片描述

docker rmi 删除镜像

docker rmi -f 镜像 ID    				     # 删除指定的镜像
docker rmi -f 镜像 ID1  镜像 ID2 镜像 ID3   # 删除多个的镜像
docker rmi -f $(docker images -aq)  	  # 删除全部的镜像

容器命令

说明:我们有了镜像才可以创建容器,liunx ,下载一个centos镜像来测试学习

docker pull centos

新建容器并启动

docker run [可选参数] image

# 参数说明
-- name="Name"    	容器名字	Nginx01 Nginx02 Nginx03,用来区分容器
-d 					后台方式运行
-it					使用交互方式运行,进入容器查看内容
-p					指定容器的端口 -p 8080
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口	(常用)
	-p 容器端口
	容器端口
-P(大写)			   随机指定端口


# 测试  启动并进入容器
docker run -it centos /bin/bash
# 退出容器
exit
# 退出容器并保持挂起状态
Ctrl+P+Q

列出所有的运行容器

# docker ps 命令
-a    	列出当前正在运行的容器+带出历史运行过的容器
-n=?  	显示最近创建的容器  列:docker ps -a -n=1
-q		只显示容器的编号
[root@iZb6u9q07jrcg8Z ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@iZb6u9q07jrcg8Z ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
a67cf4208645        centos              "/bin/bash"         8 minutes ago       Exited (0) 6 minutes ago                         determined_yalow
f56b7d8ed7d5        centos              "/bin/bash"         10 minutes ago      Exited (130) 9 minutes ago                       angry_brahmagupta
852ce5fec55e        centos              "/bin/bash"         10 minutes ago      Exited (0) 10 minutes ago                        practical_montalcini
2c8359b87219        bf756fb1ae65        "/hello"            3 hours ago         Exited (0) 3 hours ago                           friendly_visvesvaraya

删除容器

docker rm 容器id						删除指定容器,不能删除正在运行的容器,如要强制删除请用 rm -f
docker rm -f $(docker ps -aq)	 	 删除所有容器
docker ps  -a -q | xargs docker rm   删除所有的容器利用管道符的骚操作

启动和停止容器的操作

docker start 容器ID		启动容器
docker restart 容器ID		重启容器
docker stop 容器ID		停止当前正在运行的容器
docker kill 容器ID		强制停止当前的容器

常用的其他命令

后台启动容器

# 命令 docker run -d 镜像名
docker run -d -centos

# 问题docker ps 发现 centos 停止了

# 常见的坑 docker 容器使用后运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
# nginx 容器启动后,发现自己没有提供服务,就会立刻停止 就是没有程序启动他就不会启动

查看日志

docker logs -tf --tail 容器名   #空容器没有日志

# 写一段脚本来让他生成日志
docker run -d centos /bin/sh -c "while true;do echo xufanbin;sleep 2;done"

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
310b855e6c41        centos              "/bin/sh -c 'while t…"   5 seconds ago       Up 4 seconds                            naughty_hermann

# 显示日志
- tf			显示日志
-- tail 条数	   要显示日志条数
docker logs -tf --tail 10 310b855e6c41

查看容器中的进程信息

# top命令
docker top 容器ID

docker top 310b855e6c41
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4693                4677                0                   22:25               ?                   00:00:00            /bin/sh -c while true;do echo xufanbin;sleep 2;done
root                6674                4693                0                   22:30               ?                   00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 2

镜像源数据

docker inspect 容器ID

进入当前正在运行的容器

# 我们通常容器都是使用后台的方式运行的,需要进入容器,修改一些配置

# 命令
docker exec -it 容器ID /bin/bash

# 测试
[root@iZb6u9q07jrcg8Z ~]# docker exec -it 310b855e6c41 /bin/bash
[root@310b855e6c41 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@310b855e6c41 /]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 14:25 ?        00:00:00 /bin/sh -c while true;do echo xufanbin;sleep 2;done
root       391     0  0 14:38 pts/0    00:00:00 /bin/bash
root       421     1  0 14:39 ?        00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 2
root       422   391  0 14:39 pts/0    00:00:00 ps -ef

# 方式二
docker attach 容器ID
# 测试
docker attach 310b855e6c41 /bin/bash

在这里插入图片描述

正在执行的代码

docker exec			进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach		进入容器正在执行的终端,不会启动新的进程

从容器内外拷贝文件

容器从内向外拷贝
docker cp 容器id:容器内路径 目标路径
docker cp 1e322337299c:/test1.txt /root

容器从外向内拷贝
docker cp 目标路径 容器id:容器内路径 
docker cp index.html  1e322337299c:/usr/share/nginx/html/index.html

小结

在这里插入图片描述

docker run创建一个新容器并运行
docker start开启一个容器并使其在后台运行
docker stop停止一个容器
docker restart重启一个容器
docker kill杀掉一个容器进程
docker rm删除容器
docker pause暂停容器
docker create从镜像中创建一个容器
docker exec对一个容器执行shell命令
docker ps列出容器
docker inspect获取容器或镜像的元数据
docker top查看正在运行中的容器进程信息
docker attach链接正在运行的容器
docker events从docker服务器获取事件
docker logs获取docker日志
docker wait	让一个容器进入等待,使其进入阻塞状态
docker export	讲一个容器的文件系统打包至tar
docker port	列出一个容器的端口映射情况
docker container	管理已经运行的容器的
docker deploy	部署新的堆栈或更新已有堆栈的
docker update	更新容器
docker rename	重命名容器
docker volume	卷管理
docker commit	提交一个容器的文件系统,使之生成一个新的镜像
docker cp	向一个正在运行的容器复制文件,或将容器中的文件复制出来
docker diff	检查一个容器文件系统更改情况
docker login	docker登入
docker logout	docker登出
docker pull	拉取镜像
docker push	推送镜像至服务器
docker search	在docker hub上查询镜像
docker images	列出镜像
docker rmi	删除镜像
docker tag	修改本地某一镜像的标记,使其镜像属于某一仓库
docker build	通过指定Dockerfile文件编译镜像
docker history	查看镜像历史
docker save	将制定镜像保存成tar文件
docker load	从tar中恢复镜像
docker import	从tar中创建一个新镜像
docker checkpoint	设置checkpoint,类似于恢复点,可以让镜像撤销到曾经设置的某一个checkpoint上
docker image	docker镜像管理
docker manifest	docker镜像清单管理
docker trust	docker可信镜像管理
docker swarm	docker集群管理工具
docker node	docker集群节点控制
docker stack	docker集群堆栈管理
docker info	查询docker信息
docker version	查询docker版本
docker system	docker系统管理
docker stats	docker容器资源使用统计
docker config	管理docker配置
docker network	docker网络管理
docker plugin	docker插件管理
docker secret	docker敏感信息管理
docker service	docker服务管理
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页