Docker-命令

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

提示:详细内容查看黑马程序员教程:

• Docker 是一个开源的应用容器引擎

• 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)

• Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器上。

• 容器是完全使用沙箱机制,相互隔离

• 容器性能开销极低。

• Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)


提示:重点理解docker架构。特别是镜像、容器概念

一、Docker架构

镜像(Image):Docker镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统

容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等

仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像

二、Docker进程相关命令

(一)启动 docker 服务

c 复制代码
systemctl start docker

(二)重启 docker 服务

c 复制代码
systemctl restart docker

(三)停止 docker 服务

c 复制代码
systemctl stop docker

(四)查看 docker 服务状态

c 复制代码
systemctl status docker

(五)设置开机启动 docker 服务

c 复制代码
systemctl enable docker

三、Docker 镜像相关命令

(一)查看镜像

查看本地所有镜像

c 复制代码
docker images
docker images -q #查看所有镜像的id

各个选项说明:

REPOSITORY: 表示镜像的仓库源

TAG : 镜像的标签

IMAGE ID : 镜像ID

CREATED : 镜像创建时间

SIZE : 镜像大小

(二)搜索镜像

从网络中查找需要的镜像

c 复制代码
docker search 镜像名称

例如:查询mysql 镜像

c 复制代码
docker search mysql

(三)拉取镜像

c 复制代码
docker pull 镜像名称
docker pull mysql #拉取mysql镜像,没指定版本号,默认最新版本镜像

(四)删除镜像

删除本地镜像

c 复制代码
docker rmi 镜像id
docker rmi -f 镜像名/镜像ID

#批量删除镜像
docker rmi $(docker images -aq)
docker rmi 'docker images -aq'

(五)保存镜像

在/root 目录下有个test文件,将mysql的镜像文件打包成tar包保存

c 复制代码
docker save -o [保存路径/镜像文件名].tar [镜像名]:[标签]

在/root 目录下有个test文件,将mysql的镜像文件打包成tar包保存

c 复制代码
docker save -o /root/test/mysql.tar mysql:latest

(六)加载镜像

c 复制代码
docker load -i [镜像文件名].tar

将上述的mysql.tar镜像文件包,加载成镜像

c 复制代码
docker load -i mysql.tar

四、Docker 容器相关命令

(一)查看容器

1、查看正在运行的容器

c 复制代码
docker ps 

2、查看所有的容器

正在运行的容器和已停止运行的容器

c 复制代码
docker ps -a

3、查看最近运行的两个

c 复制代码
docker ps -a -n=2

4、查看正在运行的容器的id

c 复制代码
docker ps -q

5、查看所有容器的id

c 复制代码
docker ps -aq

6、查看容器内部进程

c 复制代码
docker top <容器id或名称> bash

7、与容器内部进行交互

c 复制代码
docker exec -it <容器id或名称> bash

8、查询最后一次创建的容器

c 复制代码
docker ps -l

(二)查看容器日志

1、查看容器运行日志

c 复制代码
docker logs <容器id或名称>

2、实时展示容器日志

c 复制代码
docker logs -f <容器id或名称>

3、加入时间戳展示日志

c 复制代码
docker logs -tf <容器id或名称>

4、查看最后n行日志

c 复制代码
docker logs --tail 5 <容器id或名称>

(三)启动容器

1、docker 启动一个容器

c 复制代码
docker run -it <镜像名称> /bin/bash
docker run -it ubuntu /bin/bash  #启动ubuntu镜像
参数说明:
-i:交互式操作
-t:终端

2、启动已停止运行的容器

c 复制代码
docker start <容器id>

3、重启一个容器

c 复制代码
docker restart <容器id>

4、启动容器并将容器挂载后台运行

c 复制代码
docker run -itd --name ubuntu-test ubuntu /bin/bash ##启动一个ubuntu容器
参数说明:
-d:默认不会进入容器

5、启动容器映射端口号,后台启动,指定容器名称

c 复制代码
docker run -p 8080:8080 --name 容器名称 -d 镜像名称:版本号

(四)停止容器

1、停止

c 复制代码
docker stop <容器名称或者容器id>

2、杀死一个容器

c 复制代码
docker kill <容器名称或者容器id>

3、停止全部容器

c 复制代码
docker stop $(docker ps -a -q)

(五)删除容器

c 复制代码
docker rm <容器id或者名称>
docker rm -f <容器id或者名称>
docker rm -f $(docker ps -aq) #删除全部容器

(六)进入容器内部

1、进入容器后,退出容器,容器停止

c 复制代码
docker attach <容器id>

2、进入容器后,退出容器,不会导致容器停止

c 复制代码
docker exec <容器id>
docker exec <容器id> /bin/bash

(七)退出容器内部

c 复制代码
exit

再加上一份图,展示命令使用过程

五、Docker-Compose命令

(一)启动服务

c 复制代码
docker-compose up
启动服务,服务在后台运行
docker-compose up -d

(二)停止服务

c 复制代码
docker-compose down

(三)构建服务

c 复制代码
docker-compose build

(四)查看服务日志

c 复制代码
docker-compose logs

# 实时跟踪日志
docker-compose logs -f

(五)查看正在运行的服务

c 复制代码
docker-compose ps

(六)删除所有服务容器

c 复制代码
docker-compose down --volumes

总结

以上就是我们安装docker后会经常使用的命令,然后就是理解 镜像 、容器和服务三者之间的关系。至于仓库很好理解,就是存放镜像的地址,仓库分为官方公共镜像仓库和私有镜像仓库,私有镜像仓库需要身份认证后才能拉取镜像文件。

相关推荐
Python私教16 分钟前
Blender模型导入Godot完整教程:GLB、BLEND与继承场景怎么选
运维·godot·blender
运维大师2 小时前
【K8S 运维实战】15-链路追踪Jaeger与OTel
运维·容器·kubernetes
霁月的小屋3 小时前
Docker 工程化实践(二):理解镜像分层与容器文件系统
运维·docker·容器
Android系统攻城狮3 小时前
Linux PipeWire深度解析之pw_context_add_spa_lib调用流程与实战(二十九)
linux·运维·服务器·音频进阶·pipewire音频进阶
Dovis(誓平步青云)4 小时前
《如何在CentOS 7中添加Plex官方软件源:解决文件磁盘难管理难题》
linux·运维·服务器·后端·生成对抗网络·centos
草莓熊Lotso4 小时前
【Linux网络】深入理解Linux IO多路复用:select服务器完善、内核原理与poll实战
linux·运维·服务器·c语言·网络·c++
深念Y4 小时前
MSYS2 是什么,要不要装?
运维·环境·开发·工具·msys2
网安老伯4 小时前
网络安全基础要点知识介绍(非常详细),零基础入门到精通,看这一篇就够了
运维·前端·网络协议·web安全·网络安全·职场和发展
迷茫中的自我4 小时前
GitHub Actions自动化运维实战:从CI/CD到云原生部署
运维·自动化·github
XH华4 小时前
Linux系统第二章:常见的Linux指令(上)
linux·运维·服务器