最近在看CI/CD与k8s,作为前期准备,先熟悉一下Docker的基本操作,这里我们先用Docker部署几个服务
Docker搭建私有镜像仓库Docker Registry
在Docker Hub上搜索registry,目的是为了确定我们要拉取的镜像版本
https://registry.hub.docker.com/_/registry
最终确定最新的稳定版本2.8.1
拉取镜像
docker pull registry:2.8.1
运行registry实例
docker run -d -p 5000:5000 registry:2.8.1
说明:
- -d 后台运行
- -p 端口映射,容器端口:主机端口
查看运行状态
docker ps
打标签上传
# 先下载一个nginx镜像
docker pull nginxLalpine
# 查看镜像
docker images
docker tag nginx:alpine 127.0.0.1:5000/nginx:alpine
docker push 127.0.0.1:5000/nginx:alpine
说明:
- 因为上传的目标不是默认的Docker Hub,而是本地私有仓库,所以镜像的名字前必须加仓库地址
验证是否推送成功
docker rmi 127.0.0.1:5000/nginx:alpine
docker pull 127.0.0.1:5000/nginx:alpine
查看Registry仓库镜像,Registry只提供了RESTful API
curl 127.0.0.1:5000/v2/_catalog
curl 127.0.0.1:5000/v2/nginx/tags/list
Docker搭建WordPress网站
网络架构图
拉取相关镜像
docker pull wordpress:5
docker pull mariadb:10
docker pull nginx:alpine
运行MariaDB实例
docker run -d --rm \
--name wp-mariadb
--env MARIADB_DATABASE=db \
--env MARIADB_USER=wp \
--env MARIADB_PASSWORD=123 \
--env MARIADB_ROOT_PASSWORD=123 \
mariadb:10
说明:
- 我们指定数据库为db,用户名为wp,密码为123,管理员密码为123
验证数据库,通过执行数据库客户端工具进入数据库
docker exec -it wp-mariadb mysql -u wp -p
查看容器的IP
docker inspect wp-mariadb | grep IPAddress
运行wordpress实例
docker run -d --rm \
--name wp
--env WORDPRESS_DB_HOST=172.17.0.2 \
--env WORDPRESS_DB_USER=wp \
--env WORDPRESS_DB_PASSWORD=123 \
--env WORDPRESS_DB_NAME=db \
wordpress:5
先准备一份nginx配置文件 /opt/docker/wordpress/wp.conf
server {
listen 80;
default_type text/html;
location / {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_pass http://172.17.0.3;
}
}
运行nginx实例
docker run -d --rm \
-p 80:80 \
-v `pwd`/wp.conf:/etc/nginx/conf.d/default.conf \
nginx:alpine
验证是否启动成功
docker ps
初始化网站
浏览器输入 http://192.168.2.101:80,进行WordPress初始化
验证是否搭建成功
再次登录MariDB,db数据库里创建了好多表