一,docker与虚拟机解析
1,架构区别
- 虚拟机是有独立内核的,是一个独立完整的虚拟化方案。
- Docker虚拟化软件,没有虚拟化操作系统(没有隔离内核,使用宿主机的内核)。
2,使用场景区别
- 部署测试(TO B)只能用虚拟机
- 需要挑内核的场景都不能用Docker
二,Docker网络模式
1,bridge 网桥模式
-
Docker安装启动后会在宿主主机上创建一个名为 docker0 的虚拟网桥,处于七层网络模型的数据链路层,后续每当我们创建一个新的docker容器,在不指定容器网络模式的情况下,docker会通过docker0 与主机的网络连接,docker0 相当于网桥。
-
使用 bridge 模式新创建的容器,容器内部都会有一个虚拟网卡,名为 eth0,容器之间可以通过容器内部的IP相互通信。
-
命令: docker run -d -name tomcat01 --net=bridge -p 8085:80 tomcat:latest
2,host模式
- 如果指定的host模式容器不会拥有一个独立network namesace,而是与宿主主机共用network namesace。也就说明容器本身不会有的网卡信息,而是使用宿主主机的网络信息。容器除了网络,其他比如文件系统、进程等依然都是隔离的。
- 命令:指定 --net=host
3,container模式
-
container模式和指定的容器共享,两者之间除了网络共享(网卡、主机名、IP 地址),其他方面还是隔离的。
-
命令:docker run -d -name tomcat02 --net=container:name/id -p 8000:80 tomcat:latest
三,Docker-compose
3.1 简介
- Docker-compose 是用于定义和运行多容器的 Docker 应用程序的工具。通过Compose,可以使用 YAML 文件来配置应用程序的服务。
- Compose 的使用一般分为三步:
- 使用 Dockerfile 定义应用程序的环境,以便可以在任何地方复制它。
- 在 docker-compose.yml 中定义组成应用程序的服务,以便它们可以在隔离的环境中一起运行。
- 运行 docker-compose up,然后 Compose 启动并运行您的整个应用程序。
3.2 安装 (以testlink为例)
- macOS、Windows 系统使用的 Docker Desktop 默认已经安装。
- Linux 系统:
curl -SL "https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-
更改权限:
chmod +x /usr/local/bin/docker-compose
-
查看版本:
docker-compose --version
-
在根目录下新建docker-compose.yml文件,并配置启动mariadb和testlink启容器:
version: '2'
services:
mariadb:
image: "bitnami/mariadb:latest"
environment:
- MARIADB_USER=bn_testlink
- MARIADB_DATABASE=bitnami_testlink
- ALLOW_EMPTY_PASSWORD=yes
testlink:
image: "bitnami/testlink:latest"
environment:
- MARIADB_HOST=mariadb
- MARIADB_PORT=3306
- TESTLINK_DATABASE_USER=bn_testlink
- TESTLINK_DATABASE_NAME=bitnami_testlink
- ALLOW_EMPTY_PASSWORD=yes
ports:
- '5003:8080'
- '443:443'
depends_on:
- mariadb
-
启动运行容器:
docker-compose up -d
-
通过ip:5003访问浏览器,打开testlink页面
3.3 常用命令
-
查看配置 :
docker-compose config
-
后台启动yaml文件里的容器 :
docker-compose up -d
-
构建镜像:
docker-compose build
-
下载镜像:
docker-compose pull
-
查看运行的容器 :
docker-compose ps
-
查看容器进程 :
docker-compose top
-
启动:
docker-compose start
-
停止:
docker-compose stop
-
动态查看日志:docker-compose logs -f