Docker-compose和图形界面管理
文章目录
- Docker-compose和图形界面管理
-
- Docker-compose介绍
- [Compose 模板](#Compose 模板)
- 部署Wordpress
- docker图形界面管理
Docker-compose介绍
在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。如果每个容器都要按顺序手动启停,那么维护工作量将会很大,而且工作效率也很低。
Docker Compose 可以轻松、高效地管理容器,它是一个用于定义和运行多容器的管理工具。
它通过一个单独的 docker-compose.yml 模板文件(YAML 格式)定义一组相关联资源集。
- 服务 (
service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 - 项目 (
project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义。
Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。项目由 Python 编写(后用Go语言重写),调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose 来进行编排管理。
bash
[root@docker ~]# docker compose version
Docker Compose version v2.27.0
Compose 模板
bash
#默认的模板文件名称为 `docker-compose.yml`,格式为 YAML 格式
#用来定义模板文件的版本
version: "2"
#资源列表
services:
webapp:
#使用httpd镜像的services
image: httpd
部署Wordpress
bash
#方法一:docker run
[root@docker ~]# docker run -tid --name db --restart always -v /db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=huawei -e MYSQL_DATABASE=wordpress mysql
d3fa1d9e6ecc285427b38bca95130cade90ca69ee9487825db92b3bc8af4c995
[root@docker ~]# docker run -tid --name blog -v /web:/var/www/html -p 80:80 --link db -e WORDPRESS_DB_HOST=db -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=huawei -e WORDPRESS_DB_NAME=wordpress wordpress
b5b80bd69f57bff576415f2e449a23fe6cb37be353f9b4b69d24d60a2fb9a6e1
[root@docker ~]#
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b5b80bd69f57 wordpress "docker-entrypoint.s..." 13 seconds ago Up 12 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp blog
d3fa1d9e6ecc mysql "docker-entrypoint.s..." 26 seconds ago Up 25 seconds 3306/tcp, 33060/tcp db
MYSQL_DATABASE=wordpress
#方法二:docker compose
# 删除之前的环境
[root@docker ~]# docker rm -f $(docker ps -aq)
# 通过docker compose实现多个容器一起启动
[root@docker ~]# mkdir wordpress
[root@docker ~]# cd wordpress/
[root@docker wordpress]# vim docker-compose.yml
services:
blog: #服务名字,相当于docker run的时候指定的一个名称
image: wordpress:latest #必选,镜像的名字
restart: always
links:
- db
ports: #可选,等价于 docker run 里的 -p 选项指定端口映射
- "80:80"
environment: #可选,等价于 docker run 里的 --env 选项设置环境变量
- WORDPRESS_DB_HOST=db
- WORDPRESS_DB_USER=root
- WORDPRESS_DB_PASSWORD=huawei
- WORDPRESS_DB_NAME=wordpress
db:
image: mysql:latest
restart: always
environment:
- MYSQL_ROOT_PASSWORD=huawei
- MYSQL_DATABASE=wordpress
[root@docker wordpress]# docker compose config -q #检测语法
#后端运行
[root@docker wordpress]# docker compose up -d
[+] Running 3/3
✔ Network wordpress_default Created 0.0s
✔ Container wordpress-db-1 Started 0.3s
✔ Container wordpress-blog-1 Started 0.6s
#查看现象
[root@docker wordpress]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85b438b2ff89 wordpress:latest "docker-entrypoint.s..." About a minute ago Up About a minute 0.0.0.0:80->80/tcp, :::80->80/tcp wordpress-blog-1
3c340ed1e299 mysql:latest "docker-entrypoint.s..." About a minute ago Up About a minute 3306/tcp, 33060/tcp wordpress-db-1
docker图形界面管理
DockerUI
DockerUI是一个易用且轻量化的 Docker 管理工具,通过 Web 界面的操作,更方便对于 Docker 指令不熟悉的用户更容易操作 Docker。
bash
#安装
#启动容器并映射8999端口
[root@docker ~]# docker run -d --name docker.ui --restart always -v /var/run/docker.sock:/var/run/docker.sock -p 8999:8999 joinsunsoft/docker.ui
7af59b5074732e4bd7cb9ca532379ddc35f52cbbc6aa653bda67954e56ce8d3e
#访问http://192.168.108.30:8999
#默认用户名密码:ginghan/123456
Portainer
Portainer 是一个 Docker 图形化管理工具,可以通过 Web UI 轻松的管理容器、镜像、网络、卷。同时上手难度也更大一些
Portainer 分为社区版和商业版,本文安装的是社区版(Portainer CE),该版本免费,比较适合个人用户使用。
bash
#安装
#创建存储卷
[root@docker ~]# docker volume create portainer_data
portainer_data
[root@docker ~]# docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
bd0967eedcae7fddbe5217bafcac7761c6a2d6f430e4b80bf5f4a9551567a828
#访问 https://ip:9443
ner_data:/data portainer/portainer-ce:latest
bd0967eedcae7fddbe5217bafcac7761c6a2d6f430e4b80bf5f4a9551567a828
#访问 https://ip:9443