docker常用命令

Docker命令手册
在这里插入图片描述

1. pull 下载镜像

docker pull xxxx 

例如下载redis镜像:docker pull redis 或者 docker pull redis:latest(最新版)
下载指定版本的镜像:docker pull redis:标签(去registry.hub.docker.com软件市场搜索reids点击查看tag)
在这里插入图片描述

2. images 查看本地镜像

docker images 
或者
docker images ls

查看本地的镜像:
在这里插入图片描述
REPOSITORY:名
TAG :标签
IMAGE ID:镜像id
CREATED:镜像的创建时间
SIZE:大小

3. run/start 启动镜像

前台启动:docker run 镜像名(REPOSITORY)
交互启动:docker run -it 镜像名(REPOSITORY) # 后台交互命令执行
后台启动:docker run -d 镜像名(REPOSITORY) # 相当于 docker create + docker start
后台启动:docker start 镜像名(REPOSITORY)

4. top 查看容器的进程信息

docker top 容器名称/容器id

在这里插入图片描述

5. log 查看容器日志

先启动一个nginx容器:docker run -d --name mynginx2 -p 88:80 nginx (会自动下载好并启动)
在这里插入图片描述
查看是否启动好了:docker ps (或者使用ip:88出现nginx的页面也可)
在这里插入图片描述
查看日志:docker logs 容器名
在这里插入图片描述

  • docker logs magical_dubinsky
  • docker logs -f magical_dubinsky 实时追踪

6. stop / pause / unpause / kill 停机

优雅停机,当前正在运行中的程序处理完所有事情后再停止:
docker stop 

暂停:
docker pause

恢复:
docker unpause

强制kill -9(直接拔电源):
docker kill

7. create 创建新的容器但不启动它

语法:docker create [OPTIONS] IMAGE [COMMAND] [ARG...] 
含义:docker create [设置项] 镜像名 [启动] [启动参数...]
例如:docker create redis: # 按照redis:latest镜像启动一个容器

具体操作:

docker create --name myredis -p 6379:6379 redis

  • –name myredis 取别名
  • 第一个6379:Linux主机的端口,必须唯一
  • 第二个6379:容器的端口,可以重复
  • 目的:将外部访问的端口和容器里面的端口绑定

8. ps 查看活跃容器运行状态

  • Created(新建)
  • Up(运行中)
  • Pause(暂停)
  • Exited(退出)
- 查看那些正在运行:docker ps

- 查看所有容器状态:docker ps -a
- 查询所有容器状态 docker container ls -a

在这里插入图片描述

9. ps如何查找容器名称

docker ps --format "{{.Names}}"

在这里插入图片描述

10. rm / rmi 先删除容器再删镜像

docker rm 容器id
docker rmi 镜像id
	或者 
docker rmi -f REPOSITORY:TAG

# 比如删除redis镜像:
docker rmi redis (没有冲突时使用)或者 docker rmi redis:latest (有冲突时使用)

使用docker images 查看需要删除镜像的名称和标签
在这里插入图片描述
执行命令后,发现镜像被容器(c954b99a5e76)引用:
在这里插入图片描述
也可以使用 'docker ps -a ’ 命令查看需要删除的镜像被那些容器引用
在这里插入图片描述
找到后执行:
docker rm c954b99a5e76 先删除容器
docker rmi redis 再删除容器

或者强制删除:

docker rmi -f redis

或者删除全部镜像:

docker rmi -f $(docker images -aq)
     #列出所有镜像:docker images -a 
     #列出所有镜像id:docker images -aq

在这里插入图片描述

11. prune 移除游离镜像(无用的镜像)

docker image prune 
#移除游离镜像 dangling:游离镜像(没有镜像名字的)

在这里插入图片描述

12. tag 重命名镜像

docker tag 原镜像:标签 新镜像名:标签

例如:docker tag redis:latest myredis:v1
在这里插入图片描述
镜像ID一样,说明是同一个镜像

13. attach / exec 进入容器控制台

attach:绑定到运行中容器的标准输入、输出、错误流(这样似乎也能进入容器内容,但是一定小心,他们操作的就是控制台,控制台的退出命令会生效,比如redis,nginx…)

exec:在运行时的容器内运行命令,不会导致容器退出

docker attach 容器ID或者容器名称 # 绑定的是控制台. 可能导致容器停止。不要用这个 
docker exec -it -u 0:0 --privileged mynginx2 /bin/bash  # 0用户,以特权方式进入容器

命令解析:

  • -i:交互模式
  • -t:重新分配
  • -u:身份
  • 0:0:root的身份root组,指定用户
  • –privileged:特权,可以为所欲为
    /bin/bash:进入对应的控制台目录
    在这里插入图片描述

14. inspect 查看容器/镜像的详情(配置文件)

docker(container可以省略) inspect 容器名称或者ID
	或者
docker image inspect 镜像名称

# 显示该容器第一个进行的PID
docker inspect -f {{.State.Pid}} 容器ID

15. cp 容器和本地文件系统间 复制 文件/文件夹

把外部的复制进去:docker cp [OPTIONS] 文件或者目录 容器名:存放的路径 
	docker cp aaa.text nginx:/usr/share/nginx/html
	
把容器里面的复制出来:docker cp [OPTIONS] 容器名:存放的路径  文件或者目录
	docker cp nginx:/etc/nginx/nginx.conf nginx.conf

16. diff 检查容器里文件系统结构的更改

- A:添加文件或目录 
- D:文件或者目录删除 
- C:文件或者目录更改
 docker diff 容器ID或者容器名

在这里插入图片描述

17. commit 把容器的改变,提交创建一个新的镜像

docker commit [OPTIONS] 容器 [REPOSITORY[:TAG]]
docker commit -a 作者信息 -m "提交的日志信息" 容器名 新的镜像名:标签
#把新的镜像放到远程docker hub,方便后来在其他机器下载

在这里插入图片描述

18. export 导出容器的文件系统为一个tar文件,方便传输

docker export -o nginx.tar e4689b5c752f
在这里插入图片描述

19. import 导入tar的内容创建一个镜像

在这里插入图片描述

import导入以后变成镜像,并不能直接启动容器
使用 docker image inspect 镜像名,把之前镜像的Entrypoint的所有和Cmd的连接起来就能得到启动命令
在这里插入图片描述
或者使用 docker ps --no-trunc 查看正在运行的容器启动命令
在这里插入图片描述
拼接后的命令:
docker run -d -P nginx1:v2 /docker-entrypoint.sh nginx -g ‘daemon off;’

20. save/load 保存/加载

save:把一个或者多个镜像保存为tar文件
load:从 tar 文件加载镜像
  • docker save -o redis.tar redis:latest 把redis镜像保存成tar文件
    在这里插入图片描述
  • docker load -i redis.tar 把压缩包里面的内容直接导成镜像
    在这里插入图片描述

21. push 推送镜像到远程

docker push 远程仓库名称/镜像名:标签
或者
docker push docker.io/wufenglei/test:tagname

#腾讯云的镜像地址
https://mirror.ccs.tencentyun.com
#网易的镜像地址
http://hub-mirror.c.163.com

#给远程传:将docker.io修改,仓库网址/名称空间(wufenglei)/仓库名:版本号
sudo docker tag http://hub-mirror.c.163.com/镜像名:标签 wufenglei/test:tagname
sudo docker push http://hub-mirror.c.163.com/wufenglei/test:tagname
  • 使用 docker login登录在这里插入图片描述密码存放路径:/root/.docker/config.json
  • 怎么知道是否登录了 cat ~/.docker/config.json 有没有 auth的值,没有就是没有登录
    在这里插入图片描述
  • 没有仓库先创建仓库
    在这里插入图片描述
  • 去docker hub查看自己的仓库名
  • 必须改名:docker tag nginx1:v1 仓库名/镜像名:标签
    在这里插入图片描述
    在这里插入图片描述
  • 在docker hub可以查看自己推送的仓库
    在这里插入图片描述

22. build 构建镜像

3种产生镜像方式:
     1. 基于已经存在的容器,提取成镜像 
	 2. 人家给了我tar包,导入成镜像 
	 3. 做出镜像

做出镜像:
1):准备一个文件Dockerfile

vi Dockerfile

2):编写Dockerfile

插入配置内容:
	# 基础镜像
	FROM redis
	#执行的命令
	CMD ping baidu.com

3):构建镜像

docker build -t 镜像名:tag -f Dockerfile ./
#-f:指定文件名
# ./:上下文环境,只在当前目录查找Dockerfile文件
#build:根据一个Dockerfile构建出镜像 
#commit:正在运行中的容器提交成一个镜像

build构建镜像 具体详情参考

23. docker的守护进程查看

 systemctl status docker

24. docker registry配置和查看

cat /etc/docker/daemon.json	

25. 进入容器后台,操作

# 进入镜像的后台 
docker exec -it container_id /bin/sh

# 进入镜像的后台,查看进程信息
docker exec -it container_id  /bin/bash ps -ef

#查看容器进程信息
docker top container_id  

# 查看其父进程信息
ps -ef | grep pid
# 查看子进程信息
ps aux | grep pid

# 查看进程树
pstree -l -a -A pid -p
# 查看容器目录里的进程号
docker exec -d 容器ID pstree -p
docker exec -d 容器ID ps -auxf
docker exec -d 容器ID ll /proc

#查看docker守护进程pid
pidof dockerd 
lsof -p pid | wc -l #docker守护进程打开的文件数

27. docker info Docker文件目录

docker info 

在这里插入图片描述
|-----containers:用于存储容器信息
|-----image:用来存储镜像中间件及本身信息,大小,依赖信息
|-----network
|-----swarm
|-----tmp:docker临时目录
|-----trust:docker信任目录
|-----volumes:docker卷目录

# 查看某个容器的文件目录:
docker exec 容器name ls
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值