系统环境cent os 7.3
防呆纠偏
删除已安装版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装仓库和docker引擎
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
启动试一下
sudo systemctl start docker
sudo docker run hello-world
sudo docker ps
配置国内的镜像仓库
sudo nano /etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://fsp2sfpr.mirror.aliyuncs.com/"
]
}
重启和开机启动
sudo systemctl restart docker
sudo systemctl enable docker
sudo systemctl enable containerd
docker compose可以一键部署和启动多个容器,它使用yaml文件来编排服务。
github和docker hub很多项目都提供了docker-compose.yaml文件,我们可以一键部署项目,非常方便。
一键部署wordpress
docker compose 启动时,你在哪个目录下,他就在哪里运行这个yaml文件。文件名为compose.yaml或compose.yml,鉴于版本兼容性,也会查找docker-compose.yaml或docker-compose.yml。也可以使用-f参数手动指定文件docker compose -f docker-compose-dev.yml up -d。
我们来找一个官方的yaml,https://hub.docker.com/_/wordpress。
此页面提供了yaml,可以在home新建一个wordpress文件夹,然后新建一个compose.yml文件。
cd /home
sudo mkdir wordpress
cd wordpress
sudo nano compose.yml
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
三个命令操作
docker compose up -d一键部署启动
docker compose start/stop启动/停止服务
docker compose down停止并删除容器,不会删除存储卷volume。
需要注意的是,up和down操作默认在当前目录下进行,所以最好保持在/home/wordpress下操作。
如果down后,需要删除存储卷,可以进行如下操作。
[root@bogon wordpress]# docker compose down
[+] Running 3/3
✔ Container wordpress-wordpress-1 Removed 1.2s
✔ Container wordpress-db-1 Removed 1.9s
✔ Network wordpress_default Removed 0.1s
[root@bogon wordpress]# docker volume ls
DRIVER VOLUME NAME
local 5c77a69498eac841ebb2e636602702606da1cc776b2af68d65cf5407aa806761
local 105a11a7341c71f1c1d626b6549eac0cd1dd08db15a8c65407c60acc9edfc20f
local wordpress_db
local wordpress_wordpress
[root@bogon wordpress]# docker volume rm wordpress_db wordpress_wordpress
wordpress_db
wordpress_wordpress
[root@bogon wordpress]# docker volume ls
DRIVER VOLUME NAME
local 5c77a69498eac841ebb2e636602702606da1cc776b2af68d65cf5407aa806761
local 105a11a7341c71f1c1d626b6549eac0cd1dd08db15a8c65407c60acc9edfc20f
此时,访问服务器IP:8080就可以访问wordpress了。