Docker学习笔记——Docker的常用命令

1、帮助命令

docker version		# 显示版本信息
docker info			# 显示系统信息
docker 命令 --help   # 万能命令

帮助文档地址:https://docs.docker.com/reference/

2、镜像命令

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

# 命令
docker images [参数]
# 测试
docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   6 months ago   13.3kB
# 解释
REPOSITORY	镜像的仓库源
TAG			镜像的标签
IMAGE ID	镜像的ID
CREATED		镜像的创建时间
SIZE		镜像的大小
# 可选项
-a,--all		# 列出所有镜像
-q,--quiet		# 只显示镜像的id

docker search 搜索镜像

# 命令
docker search 镜像名

# 测试
docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11413     [OK]
# 可选项,通过收藏来过滤
--filter=STARS=3000		#搜索出来的进行是stars>3000

docker pull 下载镜像

# 命令
docker pull 镜像名[:tag]

# 测试
docker pull mysql
Using default tag: latest	# 如果不写tag,默认最新版
latest: Pulling from library/mysql
a330b6cecb98: Pull complete		# 分层下载,docker images的核心 联合文件系统
9c8f656c32b8: Pull complete
88e473c3f553: Pull complete
062463ea5d2f: Pull complete
daf7e3bdf4b6: Pull complete
1839c0b7aac9: Pull complete
cf0a0cfee6d0: Pull complete
1b42041bb11e: Pull complete
10459d86c7e6: Pull complete
b7199599d5f9: Pull complete
1d6f51e17d45: Pull complete
50e0789bacad: Pull complete
Digest: sha256:99e0989e7e3797cfbdb8d51a19d32c8d286dd8862794d01a547651a896bcf00c		# 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest		# 真实地址

# 指定版本号
docker pull mysql:5.7
5.7: Pulling from library/mysql
a330b6cecb98: Already exists	# 分层下载,已经下载过的就不会重新下载了,极大的节省了内存空间
9c8f656c32b8: Already exists
88e473c3f553: Already exists
062463ea5d2f: Already exists
daf7e3bdf4b6: Already exists
1839c0b7aac9: Already exists
cf0a0cfee6d0: Already exists
fae7a809788c: Pull complete
dae5a82a61f0: Pull complete
7063da9569eb: Pull complete
51a9a9b4ef36: Pull complete
Digest: sha256:d9b934cdf6826629f8d02ea01f28b2c4ddb1ae27c32664b14867324b3e5e1291
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		# 删除多个镜像
docker rmi -f $(docker images -aq)		# 删除所有镜像

3、容器命令

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

# 命令
docker pull centos

新建容器并启动

# 命令
docker run [可选参数] image

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

# 测试
# 启动并进入容器
docker run -it centos /bin/bash
# 查看文件
ls
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr

退出容器

# 命令
exit
ctrl+p+q	# 不停止退出
# 测试
exit

列出运行中容器

# 命令
docker ps [参数]
# 测试
docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                      PORTS     NAMES
867803bad084   centos         "/bin/bash"   2 minutes ago   Exited (0) 45 seconds ago             zealous_kepler
a3a7fe3ced34   d1165f221234   "/hello"      5 hours ago     Exited (0) 5 hours ago                naughty_thompson

# docker ps 参数说明
[]		# 列出当前正在运行容器
-a		# 列出历史运行容器
-n=?	# 显示最近创建的容器
-q		# 只显示容器的编号

删除容器

# 命令
docker rm 容器id		# 删除指定的容器,不能删除正在运行的容器
docker rm -f $(docker ps -aq)	# 删除所有容器
docker pas -a -q|xargs docker rm# 删除所有容器

启动和停止容器操作

# 命令
docker start 容器id		# 启动容器
docker restart 容器id		# 重启容器
docker stop 容器id		# 停止容器
docker kill 容器id		# 强制停止当前容器容器

4、其它命令

后台启动容器

# 命令
docker run -d centos	# 后台启动
# 问题docker ps,发现centos停止了
# docker容器使用后台运行,就必须要有一个前台进程,coker发现没有应用,就会自动停止

查看日志

# 命令
docker logs -f -t --tail 容器id

# 测试
# 自己写一段shell脚本
docker run -d centos /bin/sh -c "while true;do echo minami;sleep 1;done"
b7c347f48b8456c3fe221dcc8e678883b9bf69ba5577ccce4411ef70b51e90cc

docker ps
CONTAINER ID   IMAGE
b7c347f48b84   centos
# 显示日志
docker logs -tf --tail 10 b7c347f48b84
2021-09-15T10:00:09.268501380Z minami
2021-09-15T10:00:10.276046490Z minami
2021-09-15T10:00:11.283815908Z minami
2021-09-15T10:00:12.289497916Z minami
2021-09-15T10:00:13.295453048Z minami
2021-09-15T10:00:14.300217362Z minami
2021-09-15T10:00:15.304434664Z minami
2021-09-15T10:00:16.314160129Z minami
# 参数说明
-tf				# 显示日志
--tail number	# 要显示日志条数

查看容器中进程信息

# 命令
docker top 容器id
# 测试
docker top b7c347f48b84
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                23477               23459               0                   17:59               ?                   00:00:00            /bin/sh -c while true;do echo minami;sleep 1;done
root                24080               23477               0                   18:04               ?                   00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1

查看镜像的元数据

# 命令
docker inspect 容器id

进入当前正在运行的容器

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

# 测试
docker exec -it b7c347f48b84 /bin/bash

ls
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr

# 方式二
docker attach 容器id

# 测试
docker attach b7c347f48b84
正在执行的代码...

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

从容器内拷贝文件到主机上

# 命令
docker cp 容器id:文件路径 主机文件路径

# 测试
docker cp b2460c48fb55:/root/minami.java minami.java
ls
anaconda-ks.cfg  minami.java  software
# 拷贝是一个手动过程,未来我们使用 -v 卷的技术,可以实现
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值