Docker两条命令搭建WordPress个人博客
Docker安装方法
可以根据需要通过不同的方式安装 Docker Engine:
- 可以 设置 Docker 的存储库并从中安装,以方便安装和升级任务。这是推荐的方法。
- 可以下载 RPM 包, 手动安装,并完全手动管理升级。这在无法访问互联网的隔离系统上安装 Docker 等情况下非常有用。
- 在测试和开发环境中,可以使用自动化 便捷脚本来安装 Docker。
详见官网:https://docs.docker.com/engine/install/centos/
由于限制的原因没有科学上网的话这里提供阿里云的docker-ce.repo文件放在/etc/yum.repos.d/(可直接cv),使用yum方式来安装:
[root@localhost ~]# cat /etc/yum.repos.d/docker-ce.repo [docker-ce-stable] name=Docker CE Stable - $basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg [docker-ce-stable-debuginfo] name=Docker CE Stable - Debuginfo $basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/stable enabled=0 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg [docker-ce-stable-source] name=Docker CE Stable - Sources baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/stable enabled=0 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg [docker-ce-test] name=Docker CE Test - $basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/test enabled=0 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg [docker-ce-test-debuginfo] name=Docker CE Test - Debuginfo $basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/test enabled=0 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg [docker-ce-test-source] name=Docker CE Test - Sources baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/test enabled=0 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg [docker-ce-nightly] name=Docker CE Nightly - $basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/nightly enabled=0 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg [docker-ce-nightly-debuginfo] name=Docker CE Nightly - Debuginfo $basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/nightly enabled=0 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg [docker-ce-nightly-source] name=Docker CE Nightly - Sources baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/nightly enabled=0 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
-
yum安装Docker:
-
[root@localhost ~]# yum install -y yum-utils
-
[root@localhost ~]# yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
-
-
设置开机自启:
-
[root@localhost ~]# systemctl enable --now docker.service
-
-
查看服务状态:
-
[root@localhost ~]# systemctl status docker.service
-
-
在拉取镜像,运行容器测试时,会发现拉取的很慢很慢:
-
[root@localhost ~]# docker pull hello-world
-
-
解决办法,通常如果你不会配置科学上网的话,建议配置镜像加速器,亲测还不错:
- 阿里云官方提供了免费的镜像加速器容器镜像服务 (aliyun.com):
-
编辑配置文件,重启Docker使之生效:
-
[root@localhost ~]# cat /etc/docker/daemon.json { "registry-mirrors": ["https://fpbbwupj.mirror.aliyuncs.com"] }
-
[root@localhost ~]# systemctl daemon-reload [root@localhost ~]# systemctl restart docker.service
-
-
查看配置的镜像加速器是否生效:
-
[root@localhost ~]# docker info ............ Registry Mirrors: https://fpbbwupj.mirror.aliyuncs.com/ Live Restore Enabled: false
-
-
再次拉取镜像,运行容器进行测试会发现快了很多:
-
[root@localhost ~]# docker pull hello-world Using default tag: latest latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f Status: Downloaded newer image for hello-world:latest docker.io/library/hello-world:latest
-
[root@localhost ~]# docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
-
-
接下来,运行本文标题中提到的两条命令:
-
[root@localhost ~]# docker container run -d --rm --name wordpressdb --env MYSQL_ROOT_PASSWORD=123456 --env MYSQL_DATABASE=wordpress mysql:5.7 443d4260f26435dd77bfd7f4a10f2cbb41f0bbf98c89f73e6d3749f2d739ca90
- 第一条命令用于运行一个新的MySQL容器,下面是各个参数的解释:
- docker container run: 这是运行一个新的容器的命令。
- -d: 后台运行容器(detached mode)。
- –rm: 容器停止后自动删除(remove the container once it stops)。
- –name wordpressdb: 给容器命名为wordpressdb。
- –env MYSQL_ROOT_PASSWORD=123456: 设置环境变量MYSQL_ROOT_PASSWORD为123456,这将是MySQL的root用户密码。
- –env MYSQL_DATABASE=wordpress: 设置环境变量MYSQL_DATABASE为wordpress,在启动时将创建一个名为wordpress的数据库。
- mysql:5.7: 使用MySQL 5.7版本的镜像。
- 总结来说,这个命令将启动一个MySQL 5.7版本的容器,容器名为wordpressdb,并且设置了root用户密码和预创建了一个名为wordpress的数据库。
-
[root@localhost ~]# docker container run -d -p 8080:80 --rm --name wordpress --env WORDPRESS_DB_USER=root --env WORDPRESS_DB_PASSWORD=123456 --env WORDPRESS_DB_HOST=wordpressdb:3306 --link wordpressdb:mysql --volume "$PWD/wordpress":/var/www/html wordpress 1faba3f3e999d795e5d22a34529fa1fe1f17f6f79acd705082dbb5e3b4f24215
- 第二条命令用于运行一个新的WordPress容器,下面是各个参数的解释:
- docker container run: 这是运行一个新的容器的命令。
- -d: 后台运行容器(detached mode)。
- -p 8080:80: 将主机的8080端口映射到容器的80端口,这样可以通过访问主机的8080端口来访问WordPress。
- –rm: 容器停止后自动删除(remove the container once it stops)。
- –name wordpress: 给容器命名为wordpress。
- –env WORDPRESS_DB_USER=root: 设置环境变量WORDPRESS_DB_USER为root,这将是WordPress连接数据库时使用的用户名。
- –env WORDPRESS_DB_PASSWORD=123456: 设置环境变量WORDPRESS_DB_PASSWORD为123456,这将是WordPress连接数据库时使用的密码。
- –env WORDPRESS_DB_HOST=wordpressdb:3306: 设置环境变量WORDPRESS_DB_HOST为wordpressdb:3306,这将是WordPress连接数据库时使用的主机地址和端口。
- –link wordpressdb:mysql: 将名为wordpressdb的容器链接到当前容器,并将别名设置为mysql,这样WordPress可以通过别名mysql连接到数据库。
- –volume “$PWD/wordpress”:/var/www/html: 将主机当前目录下的wordpress目录挂载到容器的/var/www/html目录,这样WordPress的数据将持久化存储在主机上。
- wordpress: 使用WordPress镜像。
- 总结来说,这个命令将启动一个WordPress容器,并通过环境变量配置WordPress连接到之前启动的MySQL容器。主机的8080端口映射到容器的80端口,可以通过访问主机的8080端口来访问WordPress。
- 浏览器访问服务器ip:8080,然后按提示进行web端的配置:
- 按提示进行登录:
- 登陆后页面:
- 至此WordPress就用Docker安装部署好了!!!
-
-
后续如果不想用了,或者只是单纯的部署玩玩,直接停止运行容器,容器会自动删除:
- 查看运行的容器:
-
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1faba3f3e999 wordpress "docker-entrypoint.s…" 44 minutes ago Up 44 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp wordpress 443d4260f264 mysql:5.7 "docker-entrypoint.s…" 45 minutes ago Up 45 minutes 3306/tcp, 33060/tcp wordpressdb
-
- 停止运行容器:
-
[root@localhost ~]# docker stop wordpress wordpress [root@localhost ~]# docker stop wordpressdb wordpressdb
-
- 再次进行查看,容器已经自动删除了:
-
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
-
- 查看运行的容器: