容器生命周期管理

Docker创建新容器并运行[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: 四种类型;
  • --link=[]: 添加链接到另一个容器;
  • --expose=[]: 开放一个端口或一组端口;

实例:

使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为yyflightNginx:

docker run --name yyflightNginx -d nginx:latest

执行完后可使用docker ps验证容器是否成功运行

Dcoker start/stop/restart

docker start 容器名:启动一个或多少已经被停止的容器

docker start yyflightNginx

docker stop 容器名:停止一个运行中的容器

docker stop yyflightNginx

docker restart 容器名:重启容器

docker restart yyflightNginx

Docker杀死运行中的容器[kill]

docker kill :杀掉一个运行中的容器。

实例:

杀死运行中的nginx容器yyflightNginx

docker kill yyflightNginx

Docker删除一个或者多个容器[rm]

语法:docker rm [OPTIONS] CONTAINER [CONTAINER...]

实例:

1、强制删除容器 yyflightNginx001、yyflightNginx02

docker rm -f  yyflightNginx001、yyflightNginx02

2、移除容器nginx01对容器db01的连接,连接名db

docker rm -l db 

3、删除容器nginx01,并删除容器挂载的数据卷

docker rm -v nginx01

Docker创建新容器但不启用[create]

语法:docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

实例:

使用docker镜像nginx:latest创建一个容器,并将容器命名为yyflightNginx001

docker create --name yyflightNginx001 nginx:latest

Docker容器暂停和恢复[pause/unpause]

docker pause :暂停容器中所有的进程

暂停数据库容器db01提供服务:

docker pause db01

docker unpause :恢复容器中所有的进程

恢复数据库容器db01提供服务:

docker unpause db01

容器操作

查看本地正在运行的容器[ps]

语法:docker ps [OPTIONS]

OPTIONS说明:

  • -a :显示所有的容器,包括未运行的。
  • -f :根据条件过滤显示的内容。
  • --format :指定返回值的模板文件。
  • -l :显示最近创建的容器。
  • -n :列出最近创建的n个容器。
  • --no-trunc :不截断输出。
  • -q :静默模式,只显示容器编号。
  • -s :显示总的文件大小。
docker ps

Docker查看容器中运行的进程信息[top]

docker top:查看容器中运行的进程信息,支持 ps 命令参数。

实例:

查看容器yyflightNginx的进程信息:

docker top yyflightNginx

Dcoker获取容器的日志[logs]

语法: docker logs [OPTIONS] CONTAINER

OPTIONS说明:

  • -f : 跟踪日志输出
  • --since :显示某个开始时间的所有日志
  • -t : 显示时间戳
  • --tail :仅列出最新N条容器日志

实例:

跟踪查看容器yyflightNginx的日志输出(帮你查看这个容器在某个时间段被执行了什么操作):

docker logs -f yyflightNginx

Docker列出指定的容器的端口映射[port]

docker port :列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。

实例:

查看容器yyflightNginx的端口映射情况:

docker port yyflightNginx

Docker info|version|status

Docker版本信息查看[version]

语法:docker version [OPTIONS]

OPTIONS说明:

  • -f :指定返回值的模板文件。
docker version

查看Docker系统信息[info]

显示 Docker 系统信息,包括镜像和容器数。

docker info

Docker服务状态查看[systemctl status]

systemctl status docker

Docker本地镜像管理

查看本地镜像列表[images]

语法:docker images [OPTIONS] [REPOSITORY[:TAG]]

OPTIONS说明:

  • -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
  • --digests :显示镜像的摘要信息;
  • -f :显示满足条件的镜像;
  • --format :指定返回值的模板文件;
  • --no-trunc :显示完整的镜像信息;
  • -q :只显示镜像ID。
docker images

Docker删除本地一个或多少镜像[rmi]

语法:docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS说明:

  • -f :强制删除;
  • --no-prune :不移除该镜像的过程镜像,默认移除;

实例:

强制删除本地镜像nginx/ubuntu

docker rmi -f nginx/ubuntu

Docker给本地镜像打标签[tag]

docker tag : 标记本地镜像,将其归入某一仓库。

语法:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Docker镜像打标签在我们的实际开发中非常常用,比如说公司的项目每次开发都会发布一个版本然后我们通过打标签来区分不同版本,如果以后想要回滚版本就可以使用指定的标签的镜像来创建容器。

实例:

1、比如说我本地现在有一个nginx的镜像:

docker images

2、我对nginx进行了开发,发布第一个版本,我就可以通过对这个版本打标签,打完标签后生成新的镜像:

docker tag nginx nginx:v001

Docker使用Dockerfile创建镜像[build]

语法:docker build [OPTIONS] PATH | URL | -

OPTIONS说明:

  • --build-arg=[] :设置镜像创建时的变量;
  • --cpu-shares :设置 cpu 使用权重;
  • --cpu-period :限制 CPU CFS周期;
  • --cpu-quota :限制 CPU CFS配额;
  • --cpuset-cpus :指定使用的CPU id;
  • --cpuset-mems :指定使用的内存 id;
  • --disable-content-trust :忽略校验,默认开启;
  • -f :指定要使用的Dockerfile路径;
  • --force-rm :设置镜像过程中删除中间容器;
  • --isolation :使用容器隔离技术;
  • --label=[] :设置镜像使用的元数据;
  • -m :设置内存最大值;
  • --memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;
  • --no-cache :创建镜像的过程不使用缓存;
  • --pull :尝试去更新镜像的新版本;
  • -q :安静模式,成功后只输出镜像ID;
  • --rm :设置镜像成功后删除中间容器;
  • --shm-size :设置/dev/shm的大小,默认值是64M;
  • --ulimit :Ulimit配置。

实例:

使用当前目录的Dockerfile创建镜像:

docker build -t w3xue/ubuntu:v1 . 

使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像:

docker build github.com/creack/docker-firefox

Dcoker查看指定镜像的创建历史[history]

语法docker history [OPTIONS] IMAGE

OPTIONS说明:

  • -H :以可读的格式打印镜像大小和日期,默认为true;
  • --no-trunc :显示完整的提交记录;
  • -q :仅列出提交记录ID。

实列:

查看容器nginx的创建历史记录:

docker history nginx

镜像仓库相关

登录/退出Docker镜像仓库[login/logout]

docker login : 登录到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

docker logout : 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

语法:

docker login [OPTIONS] [SERVER]
docker logout [OPTIONS] [SERVER]

OPTIONS说明:

  • -u :登陆的用户名
  • -p :登陆的密码

实例:

登陆到Docker Hub:

docker login -u 用户名 -p 密码

登出Docker Hub:

docker logout

Docker从镜像仓库中拉取或者更新指定镜像[pull]

语法:docker pull [OPTIONS] NAME[:TAG|@DIGEST]

OPTIONS说明:

  • -a :拉取所有 tagged 镜像
  • --disable-content-trust :忽略镜像的校验,默认开启

实列:

从Docker Hub下载最新的ubuntu镜像

docker pull ubuntu

从Docker Hub下载repository为ubuntu的所有镜像

docker pull -a ubuntu

Docker将本地的镜像上传到镜像仓库[push]

docker push : 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

语法:docker push [OPTIONS] NAME[:TAG]

OPTIONS说明:

  • --disable-content-trust :忽略镜像的校验,默认开启

实例:

上传本地镜像nginx:v001到镜像仓库中:

docker push nginx:v001

查询Docker Hub镜像[search]

语法:docker search [OPTIONS] TERM

OPTIONS说明:

  • --automated:弃用,只列出自动构建类型的镜像。
  • --filter , -f:基于给定条件过滤输出。
  • --format:使用模板格式化显示输出。
  • --limit:Max number of search results ,默认值25。
  • --no-trunc:禁止截断输出。
  • --stars , -s:弃用,只显示收藏数不小于几颗星的镜像,移到--filter中使用。

从Docker Hub查找所有镜像名包含redis,并且收藏星数大于10的镜像

docker search --filter stars=10 redis

从Docker Hub查找所有镜像名包含redis的镜像

docker search redis

参考文章

Dcoker命令在线速查手册

 

Docker日常工作常用命令的更多相关文章

  1. Docker基础和常用命令

    Docker基础和常用命令 一,Docker 简介 1.1,什么是 Docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,nam ...

  2. Docker 入门指南——常用命令

    前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...

  3. docker 安装与常用命令与常用容器(containers)环境

    注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...

  4. Docker系列之常用命令操作手册

    目录 1.安装虚拟机 2.安装Docker 3.Docker镜像操作 4.Docker容器操作 Docker系列之常用命令操作手册 继上一篇博客Docker系列之原理简单介绍之后,本博客对常用的Doc ...

  5. nginx日常维护常用命令

    http://www.jb51.net/article/47750.htm 一.简明nginx常用命令 1. 启动 Nginx poechant@ubuntu:sudo ./sbin/nginx 2. ...

  6. ubuntu工作常用命令及需要留意的点汇总

    这段时间比较忙,先是去北京出差一段时间,然后是福建项目部署上线,领导不愿意招人,只苦了我们下面的人,今天得空,简单汇总下ubuntu服务器部署的常用命令,及日常学习使用感受: 0.书籍买的<循序 ...

  7. Docker三剑客之常用命令

    一.docker-machine 命令 说明 docker-machine create 创建一个 Docker 主机(常用-d virtualbox) docker-machine ls 查看所有的 ...

  8. Docker入门以及常用命令

    目的: Docker入门 Docker简介 Centos7安装Docker Docker HelloWorld运行原理解析 阿里云镜像仓库配置 Docker常用命令 Docker基本命令 Docker ...

  9. docker入门及常用命令

    Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布 ...

随机推荐

  1. 关于个人全栈项目【臻美Chat】遇到的BUG以及解决方法

    项目展示: 问题总结:一.单用户重复登录设备 将每次输入的用户名与已经记录在后台的数组ar比较,如果存在则表示重复. // 生成数组var ar="";socket.on('arr ...

  2. UiPath视频教程

    UiPath机器人企业框架简介https://www.bilibili.com/video/BV1SK411L7u9 UiPath借助第三方Pdf软件工作https://www.bilibili.co ...

  3. key可重复的Map

    在正常的map操作中,key是不能重复的,如果希望key的内容可以重复,可以用IdentityHashMap 举个栗子 输出结果: public static void main(String[] a ...

  4. SpringCloudAlibaba分布式流量控制组件Sentinel实战与源码分析-中

    实战示例 控制台初体验 Sentinel的控制台启动后,控制台页面的内容数据都是空的,接下来我们来逐步操作演示结合控制台的使用,在上一节也已说明整合SpringCloud Alibaba第一步先加入s ...

  5. 【题解】Educational Codeforces Round 82

    比较菜只有 A ~ E A.Erasing Zeroes 题目描述: 原题面 题目分析: 使得所有的 \(1\) 连续也就是所有的 \(1\) 中间的 \(0\) 全部去掉,也就是可以理解为第一个 \ ...

  6. NC17857 起床困难综合症

    NC17857 起床困难综合症 题目 题目描述 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争 ...

  7. 动态树 — Link_Cut_Tree

    [模板]动态树(Link Cut Tree) Link-cut-tree是一种维护动态森林的数据结构,在需要动态加边/删边的时候就需要LCT来维护. Link-cut-tree的核心是轻重链划分,每条 ...

  8. DBSync新增对MongoDB、ES的支持

    数据库同步工具DBSync近日进行了升级,最新版本为V1.9,新增了对MongoDB.Elasticseach(ES)的支持,具体情况:1.支持同型库之间的同步,如:MongoDB至MongoDB,E ...

  9. 基于 Github Actions 自动部署 Hexo 博客

    前言 前不久使用了 Hexo 搭建独立博客,我是部署在我的腾讯云轻量应用服务器上的,每次都需要 hexo deploy 然后打包.上传.解压和刷新 CDN,非常麻烦.我的服务器配置也不高 2C2G 无 ...

  10. LinkedList集合和Vector集合

    LinkedList集合数据存储的结构是链表结构.方便元素添加.删除的集合.实际开发中对一个集合元素的添加与删除经常涉及到首尾操作,而LinkedList提供了大量首尾操作的方法 LinkedList ...