Docker入门之常用命令
写在前面
细数当前最流行的技术莫过于容器化和人工智能了,而容器化技术能有今天的热度,Docker可谓功不可没。
让我们一起来回顾一下Docker
是什么?
- 是一种虚拟化技术
- 能够将应用程序自动部署到容器
- 使用Go语言开源引擎
- 能够非常方便的将我们的应用程序以及运行所以来的环境部署到开发,测试及生产环境。一次编译,随处可用
有什么优势?
- 提供了简单轻量的建模方式
- 职责的逻辑分离
- 快速高效的开发生命周期
- 让应用部署具备了高可移植性
- 更方便的使用面向服务的架构
Docker的使用场景?
- 使用Docker容器开发,测试,部署服务
- 创建隔离的运行环境
- 搭建测试环境
- 构建多用户的平台即服务(PaaS)基础设施
- 提供软件即服务(SaaS)应用程序
- 高性能,超大规模的宿主机部署
常用命令
查看已安装的Docker版本
docker version
我们知道docker采用的是C/S架构的方式,所以我们可以看到一个是client端,一个是server端(守护进程)。
查看docker是否在运行以及所有状态的容器实例
docker ps // 列出目前正在运行的containersdocker ps -a //列出所有的docker containers,包括没有运行的
我们用下面的命令来尝试运行一个容器化的web server
docker run -d -p 80:80 --name webserver nginx
如果nginx这个镜像在本地没有找到,docker就会自动从docker hub 上下载到本地并且运行在80端口,我们输入 http://localhost 就可以看到已经运行成功
如果我们不手动停止刚才的container的话,它就一直会运行。
docker stop webserver
docker start webserver
在docker安装成功之后会在机器上启动客户端,可以进行一些基础的设置
Docker命令从功能上来说分为下面几个部分:
容器生命周期管理
包含 run ,start/stop/restart , kill , rm , pause/unpause , create , exec ,以run命令举例,用它来创建并运行一个容器,语法如下:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container:<name|id> 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
容器操作
包含 ps , inspect ,top , attach , events , logs , wait , export , port
docker ps [OPTIONS]
OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
容器rootfs命令
包含 commit ,cp , diff
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] //从容器创建一个新的镜像。
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
镜像仓库
包含 login , pull , push , search
docker login [OPTIONS] [SERVER] //登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
OPTIONS说明:
-u :登陆的用户名
-p :登陆的密码
本地镜像管理
包含 images , rmi , tag , build , history , save , import
docker images [OPTIONS] [REPOSITORY[:TAG]] //列出本地镜像
OPTIONS说明:
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
--digests :显示镜像的摘要信息
-f :显示满足条件的镜像;
--format :指定返回值的模板文件;
--no-trunc :显示完整的镜像信息;
-q :只显示镜像ID。
info|version
显示docker系统相关信息
以上列出的只是其中的几个命令,详细命令可参考官网或者 docker --help 来查看
https://docs.docker.com/edge/engine/reference/commandline/docker/
写在最后
docker官方提供了很好的文档支持,社区也非常的活跃,非常易于学习。
容器虚拟化技术已然是未来的主流,应该是每个coder都需要去了解和学习的。
https://docs.docker.com/
转载于:https://www.cnblogs.com/Wolfmanlq/p/DockerEntrance.html
Docker入门之常用命令相关推荐
- docker 入门教程(常用命令汇总)
文章目录 1. 系统启动/重启/停用 docker 2. docker镜像 2.1 查看镜像列表 2.2 查找镜像 2.3 拉取镜像 2.4 构建镜像 2.5 添加标签 2.6 推送镜像&镜像 ...
- docker 安装与常用命令与常用容器(containers)环境
注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...
- Docker系列之常用命令操作手册
Docker系列之常用命令操作手册 继上一篇博客Docker系列之原理简单介绍之后,本博客对常用的Docker命令进行实践 文章目录 1.安装虚拟机 2.安装Docker 3.Docker镜像操作 4 ...
- docker之容器常用命令及基本操作
docker之容器常用命令及基本操作 文章目录 docker之容器常用命令及基本操作 一.查看容器 `docker ps`常用选项 二.查看容器日志 `docker logs`命令选项 三.运行容器 ...
- Docker理解及常用命令一
doccker学习笔记二:docker理解及常用命令 docker run理解 docker工作原理 Docker的常用命令 帮助命令 镜像命令 容器命令 docker run理解 回顾刚刚安装doc ...
- PM2入门及其常用命令
文章目录 一.PM2概述 1.简介 2.普通 node 进程的缺陷 3.PM2优点 4.PM2安装 二.PM2命令详情 1.PM2常用命令 1.1 启动 1.2 管理进程 1.3 应用信息查看 1.4 ...
- Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口)
文章目录 Docker Compose搭建consul群集环境 认识Docker Compose IConsul Docker Compose容器编排 Dasker Compose配置常用字段 Bos ...
- Docker架构、常用命令和示例
文章内容参考了<Docker容器实战:原理.架构与应用>. 镜像和容器 容器:运行在操作系统上的一个进程,只不过加入了对资源的隔离和限制.在Docker中,其容器技术的三大核心功能:CGr ...
- docker 容器 exited_docker常用命令整理
docker常用命令整理 代码狂魔 • 5 天前 • 技术积累 • 14 • 0 前面已经把docker是什么和 docker怎么安装已经写了,现在我将常用命令做一个整理,方便日后查阅 常用命令 do ...
最新文章
- java多线程机制2(安全问题)
- mysql 触发器判断不插入数据_mysql关于触发器怎么判断数据存在时更新不存在时添加呢!...
- optee中TA的堆的分配
- Performance Prism
- spring boot记录操作日志
- mysql中难以理解的sql
- vue --- vue-router(项目模式的导入)
- 现在学前端还来得及吗?总听人说饱和了
- vue3新增Teleport组件
- jdk版本低于1.7 waterdrop 打不开解决
- SSM整理笔记3——配置解析
- 人工智能的下个十年在推理?
- oracle执行计划更新,请教update和delete的执行计划
- 金格公司对致远HandWrite产品的测试地址
- python主函数_Python main() 函数
- JAVA代码翻译更新(第五篇)
- pro android python with sl4a,Pro Android Python with SL4A
- 多智能体强化学习(五)MARL的挑战
- U-Boot启动过程完全分析(转)
- STM32 keyboard USB HID键盘功能的实现