Docker 使用快速入门
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 使用快速入门相关推荐
- Nginx(docker安装)快速入门
Nginx(docker安装)快速入门 文章目录 Nginx(docker安装)快速入门 一.nginx简介 1.什么是Nginx 二.Nginx安装 1.搜索nginx镜像 2.拉取nginx镜像 ...
- Docker Swarm 快速入门
Docker Swarm 快速入门 文章目录 Docker Swarm 快速入门 1.1 初始化集群 1.2 加入新节点 1.3 创建 overlay 网络 1.4 部署服务 service 1.5 ...
- 【docker】Docker核心技术快速入门及私有仓库搭建
更多内容请点击 我的博客 查看,欢迎来访. 什么是Docker? 官方文档翻译 Docker 是基于Go语言实现的开源容器项目.利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化. ...
- docker快速入门_Docker标签快速入门
docker快速入门 by Shubheksha 通过Shubheksha Docker标签快速入门 (A quick introduction to Docker tags) If you've w ...
- HotSpot源码(一):Docker与虚拟机的区别,class字节码解析,linux内核源码下载地址,Yacc与Lex快速入门
Docker是虚拟机吗? Docker是用来隔离的,使用的是隔离的namespace,使用OS提供的接口进行应用程序之间的资源隔离,不是虚拟机.再加上它自己特殊的文件系统,一层一层叠加.他只不过是一个 ...
- Docker快速入门实践-纯干货文章
Docker快速入门实践-老男孩高级架构师课程内容,如果细看还能发现讲解视频呦!小伙伴们赶紧猛戳吧! 老男孩高级架构师内部学员实践文档分享! Docker快速入门实践-纯干货文章 老男孩教育2016启 ...
- 快速入门:使用 Docker 运行 SQL Server 容器映像
Choose your command shell BashPowerShellCmd 适用对象:SQL Server(仅限 Linux)Azure SQL 数据库 Azure SQL 数据仓库 并行 ...
- MinIO Docker 快速入门
MinIO Docker 快速入门 前提条件 您的机器已经安装docker. 从 这里下载相关软件. 在Docker中运行MinIO单点模式. MinIO 需要一个持久卷来存储配置和应用数据.不过, ...
- MinIO Docker 快速入门
MinIO Docker 快速入门 前提条件 您的机器已经安装docker. 从 这里下载相关软件. 在Docker中运行MinIO单点模式. MinIO 需要一个持久卷来存储配置和应用数据.不过, ...
最新文章
- java麦克风编程,java – Synch 2类似的音频输入(一个靠文件,一个靠麦克风)
- 网页中竖的目录怎么改成横的_怎么学习手绘插画?小白也能入门哦
- 约瑟夫环问题(顺序表和单向链表)
- ubuntu + vmware7.0 gmake not found
- ubuntu16.04安装teamviewer12
- (转)RabbitMQ学习之消息可靠性及特性
- 世界上第一台计算机诞生-1946年2月14日
- 怎么用鼠标选中java中table的某一行_为什么同事的工作效率那么高?学会这些鼠标双击技巧,你也可以的...
- sql2017 for linux,Installing SQL Server 2017 for Linux on Ubuntu 18.04 LTS
- 大部分人最缺的其实是「认知」
- Linux中tty框架与uart框架之间的调用关系剖析
- 面向对象13:单元测试方法、包装类的使用、包装类面试题
- 考研英语近义词与反义词·十四·总篇
- 基于MATLAB GUI的指纹识别系统
- 3步解决AS提示:Compilation is not supported for following modules
- oracle如何恢复删除的表
- 基于wifi无线PLC远程控制实现io开关量信号远程采集传输技术
- Celeron D的型号参考
- JavaWeb实现登录验证码
- 企业如何搭建呼叫中心?