docker 命令

帮助命令

官方查阅文档地址:https://docs.docker.com/reference/

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

镜像命令

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


说明:

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

重点:
1)docker images -aq #显示所有的镜像
2)docker images -q #仅显示镜像 id

docker search 搜索镜像

docker search mysql #以搜索mysql为例

docker search mysql --filter=STARS=3000 #STARS大于3000

docker pull 下载镜像

语法:docker pull 镜像名[:tag] #不写tag,默认下载 latest
docker 是分层下载的,之前下过的无需重新下载,节省时间

docker rmi 删除镜像

docker rmi -f 镜像id #通过镜像id删除
docker rmi -f 镜像id 镜像id 镜像id #通过镜像id删除多个镜像
docker rmi -f $(docker images -aq) #删除所有镜像
docker image prune #移除游离镜像(没有镜像名)

容器命令

说明:有了镜像我们才可以创建容器,以centos镜像为例
docker pull centos

  • 新建容器并启动
    docker run [参数] image
    参数说明
    • --name="Name" 容器名字,用于区分容器
    • -d 后台方式运行
    • -it 使用交互方式运行,进入容器查看内容
    • -p 指定容器端口

1) -p ip
2) -p 主机端口:容器端口(常用)
3) -p 容器端口

  • -p 随机端口号

  • docker create --name -p 使用create需要自己启动停止

后台启动docker run -d=docker create + docker start

docker ps 查看容器运行情况

语法:docker ps 命令
docker ps # 列出当前正在运行的容器
docker ps -a #列出当前正在运行的容器 + 历史运行的容器
docker ps -n=? #显示最近出现的容器,?是个数
docker ps -aq #显示运行容器id

容器运行有pause状态,与stop状态不同

退出容器

exit #容器直接停止并退出
ctrl+p+q #容器不停止退出,利用ps命令去验证

删除容器

docker rm 容器id               #删除指定的容器,不能删除正在运行的容器,如果要强制删除用 rm -f
docker rm -f $(docker ps -aq)  #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器

启动和停止容器

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

常用其他命令

后台启动容器

问题:使用后台启动容器,docker ps 时发现镜像停止
docker run -d 镜像名

  • 问题 :docker ps 时发现镜像停止
    常见坑:docker 容器使用后台运行,就必须要有一个前台进程(例如 -it 选项就是以交互方式进入容器即对外提供服务),docker 发现没有应用,就会自动停止 nginx ,容器启动后,发现自己没有提供服务就会立刻停止,也就没有程序了。

查看日志

docker logs --help
编写一个 shell 脚本来制造日志

-tf #显示日志
--tail number #显示日志条数
docker logs -tf --tail 10 容器id

查看容器中进程信息

docker top 容器id

查看镜像的元数据

docker inspect --help
docker inspect 容器id

进入当前正在运行的容器

通常使用后台方式运行,需要进入容器来修改一些配置

  1. docker exec -it 容器id /bin/bash #通过/bin/bash命令行来进行交互进入容器
  2. docker attch 容器id

区别:exec进入容器后进入新的终端,可以操作;attach 进入正在执行的终端,不会启动新的终端

  • exec 可以指定用户:用户组来进入容器

从容器内拷贝到主机上

docker cp 容器id:容器内路径 目标机路径

ps:拷贝是一个手动过程,之后我们可以使用 -v卷 来共享

posted @ 2023-04-01 15:27  by1314  阅读(45)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end