美文网首页
Docker 容器操作 (3)

Docker 容器操作 (3)

作者: 虐心笔记 | 来源:发表于2023-05-06 09:56 被阅读0次

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

相关文章

  • docker常用指令

    1.docker启动、暂停、重启 2.docker 镜像操作 3. docker 容器指令 (1)启动和停止容器 ...

  • Docker命令及实战

    常用Docker命令 docker容器信息 镜像操作 镜像搜索 镜像下载 删除镜像 容器操作 提示:对于容器的操作...

  • docker

    1.docker 镜像 容器 2.docker与虚拟机 3.docker简单操作 1.docker 镜像 容...

  • Docker 相关的命令

    docker 相关 一、 docker查看全部容器命令docker ps -a 容器相关操作docker crea...

  • Docker入门及安装

    1.卸载 2.CentOS7中安装 3.docker基本操作 容器操作 镜像操作

  • Docker容器的操作命令

    前言 Docker 容器的操作命令,记录下来!?? 操作Docker容器 重新启动docker服务 查看 Dock...

  • docker命令

    镜像、容器基本操作 1、获取镜像docker pull 2、运行容器docker run docker run -...

  • Docker 容器&仓库

    Docker 容器 操作 Docker 容器 容器是 Docker 又一核心概念。 简单的说,容器是独立运行的一个...

  • docker 基本使用操作2

    今日份更新使用docker的操作 # 查看docker 容器的进程号 # 首先要启动docker 容器docker...

  • Docker之初顾茅庐(Docker基础命令)

    docker服务操作 开启、重启、关闭、查看Docker后台服务状态 docker管理操作 查看Docker容器的...

网友评论

      本文标题:Docker 容器操作 (3)

      本文链接:https://www.haomeiwen.com/subject/rknfsdtx.html