Levle_0
下载docker-compose
第一个问题:
刚开始还以为是我的m1又跟x86架构的存在兼容问题,还特地跑到github上去找arm的版本。。。
结果也没看懂各种文件的一大堆格式,而后灵机一动!万一是我没下载curl呢?(在这之前我并不知道curl是一个命令行工具)
安装时报错:
configure: error: select TLS backend(s) or disable TLS with --without-ssl.
解决:
在./configure的时候改为: ./configure --with-wolfssl
安装成功
经过一番折腾,docker-compose也安装好啦
开始部署
下一个问题就来了:
查询一下:
唉我吐了,为什么要买m1啊。。。
配置docker-compose.yml文件
(注意这里因为没有arm64的mysql镜像,所以改用mysql/mysql-server)
docker-compose up -d //-d后台启动
配置好文件运行后,查看一下:
然后发现一大堆奇奇怪怪的问题,最后迫于无奈又在vps上重做了一遍。。。
大功告成!
Level_1
Dockerfile的编写:
首先了解了一下Dockerfile的编写,以及构建镜像需要在存在dockerfile的目录下进行操作。还有每个dockerfile只有一句CMD,如果存在多句则只执行最后一句。
问题1
然后在创建镜像时遇到了问题:
虽然是个小问题,但是这个却很容易出错(明明学长讲过的诶~)
对比一下正确的命令
正确的语法是
docker build -t xxxxxx .
这里要空格打一个句点'.'
Dockerfile如下:
运行结果:
可以看到每个dockerfile只允许有一句CMD,如果存在多句则只执行最后一句。
###其他:
- 在创建镜像后,再修改Dockerfile没用诶
- 在做level5时发现,不管ENTRYPOINT和CMD顺序如何,都优先执行的是ENTRYPOINT(比如这两个命令都是echo)
- 再来复习一下,control+z暂时退出vim,fg返回
区别:
图二加入‘-d’参数后,cmd的参数则被覆盖了,并且这里ENTRYPOINT有两种写法,但官方推荐这种写法
Level_2
复习
首先是先阅读了一下这篇博客:
https://blog.csdn.net/weixin_40274679/article/details/106686105?ops_request_misc=&request_id=&biz_id=102&utm_term=
复习了一下docker的三种创建镜像的方式。
开始部署wordpress
这个作业实质就是启一个容器(比如ubuntu),然后跟我们开学搭建博客的预习作业一样一步一步配置wordpress,因为步骤太多我就直接放最后的成果图了。
经过三个版本的改良和其他的一些小测试终于在v3版成功辣!
Level_3
在容器内使用docker
效果如图:
原理:将本机内部的docker映射到docker中我要运行的容器中
再来看这张图,docker的一些命令都是在client里面
官方解释:
--host=[] specifies where the Docker daemon will listen for client connections. If unspecified, it defaults to /var/run/docker.sock.
daemon默认监听的是/var/run/docker.sock这个文件,所以docker客户端只要把请求发往这里,daemon就能收到并且做出响应。
实例如下:
可以看到我现在正在testL3这个容器内,但我仍然可以使用docker的命令。
查看一下我的docker守护进程启动了没
同时我感觉做到这里才更加理解了映射的概念
Level_4
再复习一下容器进入方法:
docker exec -it <name or id> /bin/bash
首先起一个nginx:mynginx
测试一下效果:
然后将nginx的目录映射到本地
(为什么?因为我要代理宿主机的端口,所以我必须将它弄到本地来操作,如果在容器里就设置反向代理,那跟我本地无关啊)
中间出了一些小插曲,然后顺便学习了一下映射
然后另起了一个nginx:testnginx
不知道在哪篇教程中看到可以在nginx里面写一个index.html,于是我也顺便写了一个(纯想玩,不写也无所谓)(为什么会写html啊喂!因为初中学过一丢丢)
设置反向代理:
监听81端口;
使用81端口代理的8080端口
Level_5
遇到的第一个问题:
不知道怎么在Dockerfile里面配置运行shell脚本!!!
然后在网上搜索了一堆教程,怎么也运行不了:tired_face:
直到星期三,在上英语课闲来无事打开知乎又随便看看dockerfile的配置详解,读完后,我明白了!
Ohhhh,终于能执行脚本了!