实战演练:玩转Docker

305 阅读2分钟

实战演练:玩转Docker

搭建私有镜像仓库

这里介绍最简单的 Docker Registry,而功能更完善的 CNCF Harbor 留到后续。

拉取registry

 docker pull registry

运行本地registry

对外暴露端口5000

 docker run -d -p 5000:5000 registry

这里的registry是在192.168.56.102中运行的

查看状态 image-20230123183540302

给上传的镜像打标签

因为上传的目标不是默认的Docker Hub,而是本地仓库,所以镜像的名字前面还必须加上仓库的地址

 docker tag lcfgrn/busybox:hello 192.168.56.102:5000/lcfgrn/busybox:hello

这里的打标签、上传操作都是在192.168.56.101中操作的

上传镜像到本地registry

 docker push 192.168.56.102:5000/lcfgrn/busybox:hello

image-20230123185844688

这里需要修改docker的配置,否则会报错http: server gave HTTP response to HTTPS client

用vim编辑/etc/docker/daemon.json,增加如下配置

 "insecure-registries":["仓库ip:port"]

注意要保证daemon.json符合json格式

然后进行docker的重启

 systemctl restart docker.service

验证是否成功推送

 docker rmi 192.168.56.102:5000/lcfgrn/busybox:hello
 docker pull 192.168.56.102:5000/lcfgrn/busybox:hello

image-20230123190112333

搭建 WordPress 网站

网站需要用到三个容器:WordPress、MariaDB、Nginx

img

拉取镜像

 docker pull wordpress:5
 docker pull mariadb:10
 docker pull nginx:alpine

启动 MariaDB

 docker run -d --rm \
     --env MARIADB_DATABASE=db \
     --env MARIADB_USER=wp \
     --env MARIADB_PASSWORD=123 \
     --env MARIADB_ROOT_PASSWORD=123 \
     mariadb:10

image-20230123203044268

启动 WordPress

查看数据库的IP

 docker inspect a38 | grep IPAddress

image-20230123203241275

启动 WordPress

 docker run -d --rm \
     --env WORDPRESS_DB_HOST=172.17.0.2 \
     --env WORDPRESS_DB_USER=wp \
     --env WORDPRESS_DB_PASSWORD=123 \
     --env WORDPRESS_DB_NAME=db \
     wordpress:latest

启动 Nginx

查看WordPress的IP

 docker inspect 6e9 | grep IPAddress

image-20230123203638819

配置Nginx

在当前路径下新增配置文件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;
   }
 }

这里的IP地址必须与WordPress容器的IP匹配

启动Nginx

 docker run -d --rm \
     -p 80:80 \
     -v `pwd`/wp.conf:/etc/nginx/conf.d/default.conf \
     nginx:alpine

这里使用-p将本机端口映射到Nginx的80端口,使用-v将当前路径下的wp.conf文件映射到Nginx的conf.d目录下。

查看容器状态

 docker ps

image-20230123204243605

状态都为Up,说明都正常启动。

验证WordPress服务

打开浏览器,输入本机的“127.0.0.1”或者是虚拟机的 IP 地址(我这里是“http://192.168.56.101”),就可以看到 WordPress 的界面

image.png

总结

使用 Docker 实际搭建了两个服务:Registry 镜像仓库和 WordPress 网站

《极客时间-Kubernetes入门实战课》学习笔记 Day8 774a0d4e91146e72b83719c671f4b6d.jpg