Docker 的常用命令

Docker 的常用命令

帮助命令

docker version 
docker info 
docker 命令 --help  (docker images --help查看images命令帮助 )

镜像命令

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

docker images
REPOSITORY                                      TAG         IMAGE ID       CREATE SIZE

hello-world                                     latest      feb5d9fea6a5   12 monago   13.3kB


#解释
REPOSITORY  镜像的仓库源
TAG  		镜像的标签
IMAGE ID    镜像的id
CREATED 	镜像的创建时间
SIZE 		镜像的大小

#可选项
docker images --help

Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]

List images

Options:
  -a, --all             Show all images (default hides intermediate images)
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Don't truncate output
  -q, --quiet           Only show image IDs

搜索镜像 docker search

docker search mysql 

NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relation…   13234     [OK]       
mariadb                         MariaDB Server is a high performing open sou…   5062      [OK]       
phpmyadmin       

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

下载镜像 docker pull

#下载镜像docker pull 镜像名[:tag]
docker pull mysql # 不推荐使用,最好加上指定版本,版本号到官网里面找

using default tag: latest #如果不写tag, 默认就是latest
latest: Pulling from library/mysq1
5b54d594fba7: Pu11 complete #分层下载,docker iamge的核心 联合文件系统


docker pull mysql:5.7 

删除镜像 docker rmi

docker rmi -f 容器id #删除指定的容器
docker rmi -f 容器id 容器id 容器id 容器id #删除多个容器
docker rmi -f $(docker images -aq) #删除全部的容器 (不介意尝试,万一本地上有别人的镜像就一起删除了,如果是自己的docker 可以尝试)

容器命令

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

docker pull centos

新建容器并启动

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

#测试,启动并进入容器
[root@kuangshen /]# docker run -it centos /bin/bash
[root@e4eccc01b495 /]# 1s 	# 查看容器内的centos,基础版本,很多命令都是不完善的!

#从容器中退回主机
[root@e4eccc01b495 /]# exit
exit


列出运行的容器

docker ps [可选参数] #列出当前正在运行的容器
-a 		# a 就是 all ,列出当前正在运行的容器+带出历史运行过的容器
-n=?	#显示最近创建的容器 -n=3 最近运行的三个容器
-q 		#只显示容器的编号

退出容器

exit	  #直接容器停止并退出
ctrl+P+Q  #容器不停止退出

删除容器

docker rm 容器id 	#删除指定的容器 不能删除正在运行的容器,如果要强制删除rm -f

docker rm -f $(docker ps -aq) #删除所有的容器 依旧不推荐 

启动和停止容器的操作

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

常用的其他命令

后台启动容器
#命令docker run -d镜像名!
[root@kuangshen /]# docker run -d centos
#问题docker ps,发现centos 停止了
#常见的坑: docker 容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止
# nginx, 容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
查看日志
docker logs -f -t --tail 容器,没有日志
Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or
                       relative (e.g. 42m for 42 minutes)
  -n, --tail string    Number of lines to show from the end of the logs (default
                       "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z)
                       or relative (e.g. 42m for 42 minutes)

#自己编写一段she11脚本
[root@kuangshen /]# docker run -d centos /bin/sh -c "while true; do echo kuangshen;sleep 1;done"
[root@kuangshen /]# docker ps
CONTAINER ID 	IMAGE
dce7b86171bf 	centos
#显示日志
-tf  #显示日志
--tail number #要显示日志条数
[root@kuangshen /]# docker 1ogs -tf --tail 10 dce7b86171bf

查看容器中进程信息
docker top 容器id
查看镜像元数据
docker inspect 容器id
进入当前正在运行的容器
#我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
#方式一
docker exec -it 容器id /bin/bash


# 方式二
docker attach 容器id


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

从容器拷贝文件到主机上
docker cp 容器id:容器内的路径 目的主机的路径
sudo docker cp 98b7040ed8ef:test.java /zhj_work # 直接拷贝,权限不够,加上sudo 之后,给对应命令,提升权限 

# 进入docker 容器内部
docker attach 容器id
cd /home # 进入对应目录
torch test.java # 建一个文件
exit # 退出容器 ,容器退出后,运行文件是一直保存的
docker cp 容器id:容器内的路径 目的主机的路径 #(被提示权限不够)
sudo docker cp 98b7040ed8ef:test.java /zhj_work # 直接拷贝,权限不够,加上sudo 之后,给对应命令,提升权限 

#拷贝是一个手动过程,未来我们使用-v卷的技术,可以实现,自动同步 /home /home

在这里插入图片描述学习至:【狂神说Java】Docker最新超详细版教程通俗易懂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值