Docker
在隔离的容器中运行进程。之前总结了Docker
镜像的使用详解,本篇按照之前测试openGauss
容器过程中总结出来使用Docker容器的常用命令。
目录
- 一、常用命令
-
- 1.创建并启动容器
- 2.列出所有容器
- 3.进入容器
- 4.退出容器
- 5.停止容器
- 6.启动/重启一个已停止的容器
- 7.删除容器
- 二、使用帮助
文章图片
一、常用命令 下面按照使用容器中的流程:
创建并启动容器 > 查询容器 > 进入容器 > 退出容器 > 停止容器 > 启动/重启容器 > 删除容器
来介绍Dockers常用命令,带领小伙伴快速入门。文章图片
1.创建并启动容器
docer run
当操作者执行docker run时,运行的容器进程是隔离的,因为它有自己的文件系统,自己的网络,以及自己与主机分离的隔离进程树。
【技术交流|【云原生】Docker 使用详解】docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
docker run
命令必须指定一个IMAGE
来派生容器。image
开发人员可以定义与以下相关的默认值:?分离或前台运行
?容器识别
?网络设置
?CPU 和内存的运行时限制
使用
docker run [OPTIONS]
操作人以添加或覆盖开发人员设置的image
默认值。操作人可以修改image
和 Docker 运行时超多参数,–help的时候你会发现列表超长。以openGauss启动示例:
docker run --name wodexiaoguaiguai --privileged=true -d -e GS_PASSWORD=Enmo@123 -v /enmotech/opengauss:/var/lib/opengauss -p 15432:5432enmotech/opengauss:3.0.0
--name
表示为启动的容器起个名字,这个名字在宿主机上唯一。所以有时候,容器停止后再用相同的命令启动就会报错,XXX is already in use by container
。解决办法参考《使用Docker部署openGauss》的Q&A。--privileged
表示是否使用特权模式,设置–privileged=true提升系统执行权限。设置为true后,容器内的root用户才是真正的root权限,否则只是一个普通用户。-d
表示要以分离模式(也就是后台模式)启动容器,这样执行后会返回容器ID,不会进入交互界面。如果想要进入交互界面需要-i 和-t参数。-e
表示要设置环境变量,多个环境变量就多个 -e ,至于需要什么环境变量就跟镜像息息相关了。-v
由于容器自身挥一挥衣袖不带走一片云彩的特点,这个参数表示绑定一个卷,实现数据的持久化,冒号前面表示宿主机的目录,后面是容器内目录。目录不存在会自动生成。-p
端口映射,示例中将宿主机上的15432端口映射到容器的5432端口。还有一种映射参数是大写的P,-P
表示容器内部端口随机映射到主机的端口。最后的
enmotech/opengauss:3.0.0
表示使用的镜像名称。2.列出所有容器
docker ps -a
使用
docker ps
可以查出当前运行(STATUS
是UP
)的容器。而docker ps -a
可以查出所有的容器,包括Exited状态的容器,a 表示all的意思。示例:[root@pekphisprb70593 software]# docker ps
CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
828cc4491684enmotech/opengauss:latest"entrypoint.sh -M st…"7 days agoUp 7 days5432/tcp, 0.0.0.0:6432->6432/tcp, :::6432->6432/tcpopengauss_slave1
7213afbe01dfenmotech/opengauss:latest"entrypoint.sh -M pr…"7 days agoUp 7 days0.0.0.0:5432->5432/tcp, :::5432->5432/tcpopengauss_master
这里第一列的CONTAINER ID就是容器ID,最后一列的NAME就是
docker run
时指定的容器名称。后面会用到。还可以使用
-q
参数只获取容器ID,看起来清爽许多。[root@pekphisprb70593 software]# docker ps -a -q
828cc4491684
7213afbe01df
3.进入容器
docker exec -it 容器名称/ID /bin/bash
容器-d 模式启动后,需要登录容器才能在其中进行操作。
docker exec
适用于在现有容器中运行命令的情况。此时需要进行交互,所以需要加上熟悉的 -it。docker exec -it 828cc4491684 /bin/bash或
docker exec -it opengauss_master /bin/bash4.退出容器
exit
做完想做的事情后,退出容器就是很通用的 exit。
5.停止容器
docker stop 容器名称/ID
需要停止容器的时候可以通过该命令完成,指定容器ID或容器名称都可。
停止单个容器
docker stop opengauss_master停止所有容器
docker stop $(docker ps -a -q)6.启动/重启一个已停止的容器
docker start/restart 容器名称/ID
这种启动适用于之前已经通过docker run创建好容器的场景。用法和stop 类似,都比较简单。示例
docker start 828cc44916847.删除容器
docker rm 容器名称/ID
容器用完后就需要删除释放资源。
删除单个容器
docker rm opengauss_master删除所有容器
docker rm $(docker ps -a -q)二、使用帮助 Docker有大量的命令,大概有40+,很难把所有的都记住。
文章图片
一般我们只需要记住常用的一些,对于其他可以运行Docker --help。
[root@pekphisprb70593 software]# docker --help
Docker 1.13+引入了子命令来帮助管理原来大量的Docker命令。两种方式只是组织方式不同,执行功能相同。在帮助文本中,我们可以看到
Management Commands
(管理命令)和Commands
(命令),通过管理命令对所有命令进行分类,更有助于Docker命令的使用。例如,查询所有容器可以使用
docker ps
,也可使用新的子命令docker container ls
。两者执行效果相同,同样,docker image ls
也可以替代docker images
。如图:文章图片
对于单独的命令,我们还可以使用
docker [command] --help
进行查询帮助。例如:[root@pekphisprb70593 software]# docker pull --help
Usage:docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Pull an image or a repository from a registry
Options:
-a, --all-tagsDownload all tagged images in the repository
--disable-content-trustSkip image verification (default true)
--platform stringSet platform if server is multi-platform capable
-q, --quietSuppress verbose output
openGauss: 一款高性能、高安全、高可靠的企业级开源关系型数据库。
如果您觉得博主的文章还不错或者有帮助的话,请关注一下博主,如果三连点赞评论收藏就更好啦!谢谢各位大佬给予的支持!
推荐阅读
- 云原生|【云原生丨Docker系列13】Docker 的多阶段构建详解
- jenkins|Jenkins简介和安装
- mongodb|宝塔修改配置文件启用mongodb密码验证
- prometheus|Prometheus监控(三)—— 钉钉和企业微信告警
- linux|Linux中DNS域名解析服务
- 云原生|云原生周报 | Kubernetes 1.25 重要更新;2022 国际开源节即将开启
- Linux系统|Linux进程概念(万字详解)
- 运维|k8s查看pod日志的几种方法
- docker|Docker 搭建redis集群