Docker 容器操作 (3)

什么是 docker 容器?

docker 容器是一种轻量级、可移植、自包含的软件执行环境。有文件系统、网络配置和运行库,可以在任何支持 docker 的平台上运行。与传统虚拟化技术(如 virtualbox 或 vmware)不同,在 docker 中创建的容器与宿主机共享同一个内核。这使得 docker 容器更加轻量级、快速启动和停止,更方便部署在云端或本地服务器上。

docker 容器的优势

  • 环境一致性:使用 docker 容器可以确保应用在不同环境下的一致性,避免了由于环境差异而导致的运行问题。
  • 轻量级高效:docker 容器相对于虚拟机来说更加轻量级、占用资源更少,启动和停止也更快捷,适合于实现微服务架构。
  • 可移植性:docker 容器可以在不同的平台、操作系统和云服务中进行部署,非常适合实现跨云供应商应用部署。
  • 安全性:docker 容器提供了多种安全特性,如 namespace 隔离、cgroup 限制等,可以有效隔离容器间的进程和资源,提高了应用的安全性。

基本操作

Docker 容器使用一系列的命令来管理容器,这些命令的结构大致分为:

$ docker [OPTIONS] COMMAND [ARG...]
  • docker: 命令是操作 Docker 容器的入口。
  • OPTIONS: 选项用于修改命令的行为,可以省略。
  • COMMAND: 是具体的执行命令,例如 run, start, stop, rm 等。
  • ARG: 是命令的参数。

例如,使用 docker container run 命令创建一个新容器时,命令结构为:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • docker run 是常用来创建并启动一个新容器的命令。
  • OPTIONS 可以包含一些配置信息,如 -d 表示在后台运行,-p 表示映射端口等。
  • IMAGE 是指要用来创建容器的镜像名称或 ID。
  • COMMAND 是在容器内部要执行的命令,可以省略。
  • ARG 是传递给 COMMAND 的参数,可以省略。
运行状态
  • 运行:进程正常运行
  • 暂停:进程暂停,CPU不再运行,并不释放内存
  • 停止:进程终止,回收进程占用的内存、CPU等资源
常用命令
  • docker run: 创建并运行容器
  • docker pause: 容器暂停
  • docker unpause: 容器从暂停恢复到运行状态
  • docker stop: 停止容器
  • docker start: 启动容器
  • docker rm: 删除已停止的容器,如果需要删除正在运行的则加上-f
  • docker inspect [容器ID]:查看运行容器的IP地址信息
  • docker logs: 查看容器运行日志信息,携带 -f 参数则可以持续查看
  • docker ps: 查看当前运行的容器列表, -a 则查看所有的容器

案例1:创建一个 sonarqube 容器并运行

步骤一:docker hub 查看sonarqube 的容器运行相关命令

$ docker run --name sonar -p 9000:9000 -d sonarqube

命令解读

  • docker run:创建并运行一个容器
  • --name: 给容器自定义name,eq:sonar
  • -p:将宿主机端口与容器端口映射 // 注意左边的是宿主机端口,右边是容器端口。可以理解为当客户端访问宿主机的9000端口则就是访问映射的容器端口9000
  • -d: 后台运行容器
  • sonarqube: 镜像名称

如果创建过程中出现以下错误:

docker: Error response from daemon:driver failed programming external connetivity on endpoint 

因为上述环境是在Windows系统的VM虚拟机搭建的docker环境,如果需要主机访问虚拟机中的sonarqube服务,则需要通过VM机设置NAT模式共享主机IP,这种情况下主机与虚拟机是通过防火墙进行路由IP的,而一开始在环境搭建的时候,防火墙都是关闭状态.所以就需要开启防火墙.开启对应的端口.然后重启防火墙和docker服务才能使配置生效.

# 1.检查端口是否占用
$ netstat -tunlp | grep 9000

# 2.检查端口放行情况,如果端口未打开则需要防火墙开放指定端口
$ firewall-cmd --list-all --zone=trusted

# 3.重启防火墙
$ firewall-cmd --reload

# 4.重启docker
$ systemctl restart docker

# 5.创建并运行sonarqube
$ docker run --name sonar -p 9000:9000 -d sonarqube

案例2: 进入sonar 容器,修改 conf 配置信息

步骤一: 以命令行交互的方式进入容器

$ docker exec -it sonar bash

命令解读:

  • docker exec: 进入容器内部,执行某个命令
  • -it: 给当前进入容器创建一个标准输入、输出终端,运行与容器直接交互
  • sonar:要进入的容器对象名称
  • bash:进入容器后执行的命令,bash是一个Linux终端交互shell

步骤二:进入sonarqube的配置文件目录

$ cd /opt/sonarqube/conf

步骤三: 修改 soanr.properties 文件信息

# 注意因为容器内部初始化并没有vi相关命令,这里通过sed操作文件修改
$ sudo sed -i 's/#sonar.jdbc.url=jdbc:postgresql://localhost/sonar.jdbc.url=jdbc:postgresql://192.168.1.100/g' /path/to/sonar.properties
# 上述命令将把注释行 #sonar.jdbc.url=jdbc:postgresql://localhost 更改为未注释的行 sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube

以上从案例2可以看出,如果想对容器的相关信息进行修改,非常的不方便,需要进入容器内部进行操作,而且可以发现这种操作的数据不是持久化,当容器再次运行之前的配置信息不会被保存。
容器与数据高度耦合。不便于修改,数据不可复用,升级维护困难。后续将通过数据卷挂载的形式解决

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,063评论 6 510
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,805评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,403评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,110评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,130评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,877评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,533评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,429评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,947评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,078评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,204评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,894评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,546评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,086评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,195评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,519评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,198评论 2 357

推荐阅读更多精彩内容