Docker-Compose 是一个命令行工具,用于部署和管理多个 docker 容器。Compose 是用 Python 编写的,所以也可以使用 pythonpip 命令安装。当然,还是那句话,如果直接是云主机上操作的话,还是先备份为好,防止数据丢失!
一、开始搭建wordpress(自己的办法,有效)
我们将使用 Nginx、 MySQL 和 PHP-FPM 部署‘ WordPress’,每个服务都有自己的容器。比如我喜欢创建新的文件夹,所以大家随便创建,比如我创建的/wordpress-compose,然后进入这个文件夹下。
前提条件:
已经装好docker-compose
Ubuntu环境
然后在建好的文件夹下建立以下文件夹:
touch docker-compose.yml
mkdir -p nginx/
mkdir -p db-data/
mkdir -p logs/nginx/
mkdir -p wordpress/
建立的文件说明:
-docker-compose.yml文件来启动WordPress等服务容器的
– nginx/: 这个目录用于额外的 nginx 配置,比如虚拟主机,vps,云主机等。
– db-data/: mysql 的’/var/lib/mysql’中的 sql 被挂载到 db-data 目录。
– logs/: 应用程序日志。
– wordpress/:所有的 wordpress 文件都可以在那个目录中找到。
接下来,在 nginx 目录中,为我们的 wordpress 虚拟主机中创建一个新的配置文件。
vim nginx/wordpress.conf
server {
listen 80;
server_name 你的ip;
root /var/www/html;
index index.php;
access_log /var/log/nginx/hakase-access.log;
error_log /var/log/nginx/hakase-error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
接下来,开始配置 Docker-Compose,编辑 vim docker-compose.yml
version: '3.3'
services:
nginx:
image: nginx:latest
ports:
- '80:80'
volumes:
- ./nginx:/etc/nginx/conf.d
- ./logs/nginx:/var/log/nginx
- ./wordpress:/var/www/html
links:
- wordpress
restart: always
mysql:
image: mysql:5.7.32
ports:
- '3306:3306'
volumes:
- ./db-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=aqwe123
restart: always
wordpress:
image: wordpress:6.1-php8.0-fpm
ports:
- '9000:9000'
volumes:
- ./wordpress:/var/www/html
environment:
- WORDPRESS_DB_NAME=wpdb
- WORDPRESS_TABLE_PREFIX=wp_
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_PASSWORD=aqwe123
links:
- mysql
restart: always
大家最好去文档看下,里面的内容是什么,理解下里面的相互依赖的关系,还要注意里面的格式,不然会报错的,献上文档说明:通过docker在ubuntu上安装wordpress之二:安装wordpress_Mark的博客-CSDN博客
wordpress镜像地址:Docker Hub
这个时候,我们的 docker-compose 配置已经就绪,开始运行 Docker-compose,命令:
docker-compose up -d
成功之后会显示:

接下来输入docker-compose ps查看是不是已经开启了容器了,如下图就已经开启了

当然如果报错了,想看日志,可以输入命令:
docker-compose logs nginx
docker-compose logs mysql
docker-compose logs wordpress
注意的是,当你用nginx来搭建的话,需要去改下nginx.conf文件,当nginx启动成功后,我们只需要修改配置文件,就可以实现多个域名和https访问的需求啦。nginx的配置文件有两个,/etc/nginx/nginx.conf和/etc/nginx/conf.d/default.conf。点开看nginx.conf的话,会发现里面引入了default.conf的内容,也就是说这是一个文件分成两个文件来写。
最后就开始安装wordpress了,直接输入你的ip地址就进入安装界面了,这里就不说了!

二、一步一步docker pull来搭建也是可以的
如果不想用配置文件的方法,也可以一步一步来完成,拿nginx举例,比如很多网上的教程好像是使用 Debian 的 Apache来搭建wordpress,而有些小伙伴喜欢使用nginx,也可以换掉
1.使用docker search nginx命令获取ngin镜像列表

2.使用docker pull nginx命令拉取nginx镜像到本地,此处我们获取排名第一的是官方最新镜像,其它版本可以去DockerHub查询

3.使用docker images nginx命令,查看我们拉取到本地的nginx镜像IMAGE ID

创建nginx容器 首先测试下nginx镜像是否可用,使用docker run -d –name mynginx -p 80:80 231d创建并启动nginx容器
- -d 指定容器以守护进程方式在后台运行
- –name 指定容器名称,此处我指定的是mynginx
- -p 指定主机与容器内部的端口号映射关系,格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机80端口,映射容器80端口
- 231d 是nginx的镜像IMAGE ID前4位
命令执行后返回了容器ID,ef1f3b….,此时我们已经成功创建了nginx容器,

使用docker ps命令,可以查看到正在运行的nginx容器,映射端口为80

在浏览器访问NGINX主机,会看到nginx欢迎页,如果你是云服务器,请记得开放对应的外网端口!!!!

到这里我们已经完成了nginx容器的搭建,但是此时还有个问题,我们如何修改nginx的配置文件? 这里有两种方式解决这个问题:
每次都进入到nginx容器内部修改。适合改动少,简单使用的情况 1.执行docker exec -it ef bash进入到nginx容器内部,
- exec 命令代表附着到运行着的容器内部
- -it 是 -i 与 -t两个参数合并写法,-i -t 标志着为我们指定的容器创建了TTY并捕捉了STDIN
- ef 是我们要进入的容器Id
- bash 指定了执行命令的shell

进入到nginx容器内部后,我们可以cd /etc/nginx,可以看到相关的nginx配置文件都在/etc/nginx目录下

而nginx容器内的默认首页html文件目录为/usr/share/nginx/html,日志文件位于/var/log/nginx

执行exit命令我们可以从容器内部退出,当然后面会介绍更方便的外部挂载方法!
三、docker其他相关操作
docker关机和清理操作
该命令docker-compose down
将删除容器和默认网络,但会保留WordPress文件和数据库。
该命令docker-compose down --volumes
将删除容器,默认网络和WordPress数据库。
卸载谋个镜像:
先docker stop 镜像id
然后docker rm 镜像id
如果一键删除所有容器和镜像,可以:
1、杀死运行的容器:
docker kill $(docker ps -a -q)
2、删除所有容器:
docker rm $(docker ps -a -q)
3、强制删除所有镜像:
docker rmi -f $(docker images -q)
其他指令:
1、docker下进入mysql命令行
先使用 docker ps 命令,显示都有哪些容器:

再使用 docker exec -it ID bash 或者 docker attach 容器ID 命令开启MySQL容器,即可进入MySQL了

最后可通过exit或者Ctrl+P+Q,退出容器!当然想重启所有容器的命令:docker start $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
2、注意docker容器内是不带vim,需要安装下
3、vi编辑模式无法右键复制粘贴的问题:
因为docker里面的vi是visual模式的,所以先看下vim的版本,比如我的是8.1
然后defaults.vim这个文件,在在mouse=a的=前面加个-即可!
4、docker 安装 jumpserver 服务
前提:已安装好docker和docker-compose
跟之前一样,先创建对应的文件夹,比如jump
mkdir -p /jump
cd jump/
接下来开始下载jms的docker项目:
git clone https://github.com/wojiushixiaobai/docker-compose.git
然后你会在jump文件夹看到

接下来,就是常规的编辑docker-compose.yml了,具体可以去文档看下需要改什么,自己根据需要修改即可:
改完保存,开始用docker-compose启动项目,注意要在文件夹下面,不要去别的文件夹下:
docker-compose up -d
完成之后,docker ps 一下看下有没有成功:


为了防止端口冲突,也可以再docker-compose.yml里面修改下nginx模块的80端口,把80:80改为88:80,具体随便你改。

弄完之后,就可以登录jumpserver后台了,地址你的ip+你刚才修改的端口就可以了

默认的登录用户名和密码均为:admin,可以自己去修改,网上教程很多。