一、安装docker
1.配置用户组
# 新建用户组
groupadd docker
# 将登录用户加入到docker用户组中
usermod -aG docker $USER
# 更新用户组
newgrp docker
2.下载docker
mkdir -p ~/tools/docker
cd ~/tools/docker
wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.18.tgz
mkdir install-package
tar -xf docker-20.10.18.tgz -C install-package --strip-components=1
tar -xf docker-20.10.18.tgz -C /usr/local/bin --strip-components=1
mkdir -p ~/data/docker
3. 编辑docker.service文件
vim /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd -H unix://var/run/docker.sock --data-root=/root/data/docker
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
4.启动服务
systemctl daemon-reload
systemctl start docker
systemctl enable docker
reboot
二、安装docker compose
1.按程序方式安装
curl -SL https://github.com/docker/compose/releases/download/v2.11.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +777 /usr/local/bin/docker-compose
docker-compose version
2.按插件方式安装
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.11.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
docker compose version
三、编辑文件
1.编辑yml文件
vim phpmyadmin-5.20.yml
version: '3.9'
networks:
data-link:
driver: bridge
php-link:
driver: bridge
volumes:
phpmyadmin:
db:
services:
web:
image: nginx:1.23.1
container_name: nginx
restart: always
depends_on:
- app
ports:
- target: 80
published: 8080
protocol: tcp
mode: host
volumes:
- type: bind
source: ./default.conf
target: /etc/nginx/conf.d/default.conf
volume:
nocopy: true
volumes_from:
- app
networks:
- php-link
app:
image: phpmyadmin:5.2.0-fpm
container_name: phpmyadmin
restart: always
depends_on:
- db
volumes:
- type: volume
source: phpmyadmin
target: /var/www/html
volume:
nocopy: false
networks:
- php-link
- data-link
env_file:
- .env
db:
image: mysql:5.7.39-oracle
container_name: mysql
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- type: volume
source: db
target: /var/lib/mysql
volume:
nocopy: false
networks:
- data-link
env_file:
- .env
2.编辑env文件
vim .env
#Set Mysql/Phpmyadmin environment
MYSQL_ROOT_PASSWORD=12345678
MYSQL_PASSWORD=87654321
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
3.编辑default. conf
vim default.conf
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /var/www/html;
index index.php index.html index.htm;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www/html;
fastcgi_pass app:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
五、网络运维
1.运行
docker compose -f phpmyadmin-5.20.yml up -d
docker ps -a
docker volume list
2. 网站测试
http://IP:8080 # IP替换为服务器ip地址
3.停止服务
docker compose -f phpmyadmin-5.20.yml down
docker volume prune
docker ps -a
docker volume list