Docker-compose和图形界面管理

Docker-compose和图形界面管理

文章目录

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

复制代码
相关推荐
好像不对劲3 小时前
【docker】win10 wsl docker不能挂GPU
运维·docker·容器·wsl
江畔何人初4 小时前
Docker、containerd、CRI、shim 之间的关系
运维·docker·云原生·容器·kubernetes
杨浦老苏5 小时前
在线视频播放器YT-DLP Web Player
docker·工具·群晖·下载·多媒体
ALex_zry5 小时前
Docker Compose 配置文件完全指南:从基础到生产级安全实践
服务器·安全·docker
万象.6 小时前
docker镜像仓库
运维·docker·容器
姚不倒6 小时前
Docker 核心原理与运维实战:从入门到生产级理解
运维·docker·架构
2401_844221327 小时前
深入理解K8s中的应用服务:访问、集群与配置
容器·kubernetes·php
vpk1128 小时前
Docker 安装与常用命令
运维·docker·容器
vpk1129 小时前
Docker Compose 安装 MySQL 8
mysql·容器