Share this post on:

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,如果存在多句则只执行最后一句。

###其他:

  1. 在创建镜像后,再修改Dockerfile没用诶
  2. 在做level5时发现,不管ENTRYPOINT和CMD顺序如何,都优先执行的是ENTRYPOINT(比如这两个命令都是echo)
  3. 再来复习一下,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,终于能执行脚本了!

Share this post on:

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用 * 标注