Docker 在隔离的容器中运行进程,本篇总结使用容器流程中的常用命令。下面按照使用容器中的流程:  `创建并启动容器 > 查询容器  > 进入容器  >  退出容器 > 停止容器 > 启动/重启容器 > 删除容器`来介绍Dockers常用命令,带领小伙伴快速入门。

目录

创建并启动容器`docer run`

列出所有容器`docker ps -a`

进入容器`docker exec -it 容器名称/ID /bin/bash`

退出容器`exit`

停止容器`docker stop 容器名称/ID`

启动/重启一个已停止的容器`docker start/restart 容器名称/ID`

删除容器`docker rm 容器名称/ID`


创建并启动容器`docer run`

主机可以是本地的或远程的。当操作者执行docker run时,运行的容器进程是隔离的,因为它有自己的文件系统,自己的网络,以及自己与主机分离的隔离进程树。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

`docker run`命令必须指定一个`IMAGE`来派生容器。`image`开发人员可以定义与以下相关的默认值:

  • 分离或前台运行
  • 容器识别
  • 网络设置
  • CPU 和内存的运行时限制

使用`docker run [OPTIONS]`操作人以添加或覆盖开发人员设置的`image`默认值。操作人可以修改`image`和 Docker 运行时超多参数,--help的时候你会发现列表超长。

示例:

docker run --name wodexiaoguaiguai --privileged=true -d -e GS_PASSWORD=Enmo@123 -v /enmotech/uuu:/var/lib/xxx-p 15432:5432  xxxx

`--name` 表示为启动的容器起个名字,这个名字在宿主机上唯一。所以有时候,容器停止后再用相同的命令启动就会报错,XXX is already in use by container。解决办法可以换个容器名字或者删除原容器。

`--privileged` 表示是否使用特权模式,设置--privileged=true提升系统执行权限。设置为true后,容器内的root用户才是真正的root权限,否则只是一个普通用户。

`-d` 表示要以分离模式(也就是后台模式)启动容器,这样执行后会返回容器ID,不会进入交互界面。如果想要进入交互界面需要-i 和-t参数。

`-e ` 表示要设置环境变量,多个环境变量就多个 -e  ,至于需要什么环境变量就跟镜像息息相关了。

`-v ` 由于容器自身挥一挥衣袖不带走一片云彩的特点,这个参数表示绑定一个卷,实现数据的持久化,冒号前面表示宿主机的目录,后面是容器内目录。目录不存在会自动生成。

`-p` 端口映射,示例中将宿主机上的15432端口映射到容器的5432端口。还有一种映射参数是大写的P,`-P`表示容器内部端口随机映射到主机的端口。

最后的`enmotech/opengauss:3.0.0`表示使用的镜像名称。

列出所有容器`docker ps -a`

使用`docker ps`可以查出当前运行(`STATUS`是`UP`)的容器。而`docker ps -a`可以查出所有的容器,包括Exited状态的容器,a 表示all的意思。示例:

[root@pekphisprb70593 software]# docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED      STATUS      PORTS                                                 NAMES
828cc4491684   enmotech/opengauss:latest   "entrypoint.sh -M st…"   7 days ago   Up 7 days   5432/tcp, 0.0.0.0:6432->6432/tcp, :::6432->6432/tcp   slave1
7213afbe01df   enmotech/opengauss:latest   "entrypoint.sh -M pr…"   7 days ago   Up 7 days   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp             xxxxx

这里第一列的CONTAINER ID就是容器ID,最后一列的NAME就是dockerrun时指定的容器名称。后面会用到。

还可以使用-q 参数只获取容器ID,看起来清爽许多。

[root@pekphisprb70593 software]# docker ps -a -q
623cc4491796 
8913afee01df

进入容器`docker exec -it 容器名称/ID /bin/bash`

容器-d 模式启动后,需要登录容器才能在其中进行操作。`docker exec`适用于在现有容器中运行命令的情况。此时需要进行交互,所以需要加上熟悉的 -it。

docker exec -it 623cc4491796 /bin/bash 

docker exec -it xxxxxx /bin/bash

退出容器`exit`

做完想做的事情后,退出容器就是很通用的 exit。

停止容器`docker stop 容器名称/ID`

需要停止容器的时候可以通过该命令完成,指定容器ID或容器名称都可。

停止单个容器

docker stop xxxx

停止所有容器

docker stop $(docker ps -a -q)

启动/重启一个已停止的容器`docker start/restart 容器名称/ID`

这种启动适用于之前已经通过docker run创建好容器的场景。用法和stop 类似,都比较简单。示例

docker start 623cc4491796

删除容器`docker rm 容器名称/ID`

容器用完后就需要删除释放资源。

删除单个容器

docker rm opengauss_master

删除所有容器

docker rm $(docker ps -a -q)

Docker 使用快速入门相关推荐

  1. Nginx(docker安装)快速入门

    Nginx(docker安装)快速入门 文章目录 Nginx(docker安装)快速入门 一.nginx简介 1.什么是Nginx 二.Nginx安装 1.搜索nginx镜像 2.拉取nginx镜像 ...

  2. Docker Swarm 快速入门

    Docker Swarm 快速入门 文章目录 Docker Swarm 快速入门 1.1 初始化集群 1.2 加入新节点 1.3 创建 overlay 网络 1.4 部署服务 service 1.5 ...

  3. 【docker】Docker核心技术快速入门及私有仓库搭建

    更多内容请点击 我的博客 查看,欢迎来访. 什么是Docker? 官方文档翻译 Docker 是基于Go语言实现的开源容器项目.利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化. ...

  4. docker快速入门_Docker标签快速入门

    docker快速入门 by Shubheksha 通过Shubheksha Docker标签快速入门 (A quick introduction to Docker tags) If you've w ...

  5. HotSpot源码(一):Docker与虚拟机的区别,class字节码解析,linux内核源码下载地址,Yacc与Lex快速入门

    Docker是虚拟机吗? Docker是用来隔离的,使用的是隔离的namespace,使用OS提供的接口进行应用程序之间的资源隔离,不是虚拟机.再加上它自己特殊的文件系统,一层一层叠加.他只不过是一个 ...

  6. Docker快速入门实践-纯干货文章

    Docker快速入门实践-老男孩高级架构师课程内容,如果细看还能发现讲解视频呦!小伙伴们赶紧猛戳吧! 老男孩高级架构师内部学员实践文档分享! Docker快速入门实践-纯干货文章 老男孩教育2016启 ...

  7. 快速入门:使用 Docker 运行 SQL Server 容器映像

    Choose your command shell BashPowerShellCmd 适用对象:SQL Server(仅限 Linux)Azure SQL 数据库 Azure SQL 数据仓库 并行 ...

  8. MinIO Docker 快速入门 ​​​​​​​

    MinIO Docker 快速入门 前提条件 您的机器已经安装docker. 从 这里下载相关软件. 在Docker中运行MinIO单点模式. MinIO 需要一个持久卷来存储配置和应用数据.不过, ...

  9. MinIO Docker 快速入门

    MinIO Docker 快速入门 前提条件 您的机器已经安装docker. 从 这里下载相关软件. 在Docker中运行MinIO单点模式. MinIO 需要一个持久卷来存储配置和应用数据.不过, ...

最新文章

  1. java麦克风编程,java – Synch 2类似的音频输入(一个靠文件,一个靠麦克风)
  2. 网页中竖的目录怎么改成横的_怎么学习手绘插画?小白也能入门哦
  3. 约瑟夫环问题(顺序表和单向链表)
  4. ubuntu + vmware7.0 gmake not found
  5. ubuntu16.04安装teamviewer12
  6. (转)RabbitMQ学习之消息可靠性及特性
  7. 世界上第一台计算机诞生-1946年2月14日
  8. 怎么用鼠标选中java中table的某一行_为什么同事的工作效率那么高?学会这些鼠标双击技巧,你也可以的...
  9. sql2017 for linux,Installing SQL Server 2017 for Linux on Ubuntu 18.04 LTS
  10. 大部分人最缺的其实是「认知」
  11. Linux中tty框架与uart框架之间的调用关系剖析
  12. 面向对象13:单元测试方法、包装类的使用、包装类面试题
  13. 考研英语近义词与反义词·十四·总篇
  14. 基于MATLAB GUI的指纹识别系统
  15. 3步解决AS提示:Compilation is not supported for following modules
  16. oracle如何恢复删除的表
  17. 基于wifi无线PLC远程控制实现io开关量信号远程采集传输技术
  18. Celeron D的型号参考
  19. JavaWeb实现登录验证码
  20. 企业如何搭建呼叫中心?

热门文章

  1. 计算机专业毕业设计答辩ppt案例,计算机专业 毕业设计答辩PPT.ppt
  2. 商业保理与 P2P 是如何结合运作的
  3. 关于一些数学符号和概率的阐述;
  4. 产品经理——java学习之路
  5. npm和nrm常用命令
  6. nginx 解决504超时问题
  7. Androd studio无线调试及镜像投屏
  8. Spring boot 支付宝网站支付
  9. 送书【新书】 |《Git从入门到精通》
  10. 因为未将计算机与远程服务,win7提示错误797未建立到远程访问服务的连接怎么办...