ESP8266使用Docker容器化移动端控制

背景知识视频教程

  • Docker容器,第三版
  • 用于Python Flask开发的Docker
  • Docker Mastery:来自Docker船长的完整工具集

容器映像是一个软件的轻量级独立可执行软件包,包括运行该映像所需的一切:代码,运行时,系统工具,系统库和设置。 这样,您无需安装大量的库和软件,就可以使用现有映像并从中启动一个容器。

我们将使用具有Ionic和Android SDK的容器,该容器将允许您开发和测试移动应用程序。

安装Docker

在Virtual Box中的Ubuntu 16.04里,我们将安装和配置Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key
 add -

将Docker存储库添加到APT源:

 sudo add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/ubuntu
 $(lsb_release -cs) stable"

使用新添加的存储库更新软件包数据库:

sudo apt-get update

从Docker存储库而不是Ubuntu存储库安装Docker Community Edition:

apt-cache policy docker-ce

输出表明有多个可用版本:

docker-ce:
 Installed: (none)
 Candidate: 17.09.0~ce-0~ubuntu
 Version table:
 17.09.0~ce-0~ubuntu 500
 500 https://download.docker.com/linux/ubuntu xenial/stable
 amd64 Packages
 17.06.2~ce-0~ubuntu 500
 500 https://download.docker.com/linux/ubuntu xenial/stable
 amd64 Packages
 17.06.1~ce-0~ubuntu 500
 500 https://download.docker.com/linux/ubuntu xenial/stable
 amd64 Packages
 17.06.0~ce-0~ubuntu 500
 500 https://download.docker.com/linux/ubuntu xenial/stable
 amd64 Packages
 17.03.2~ce-0~ubuntu-xenial 500
 500 https://download.docker.com/linux/ubuntu xenial/stable
 amd64 Packages
17.03.1~ce-0~ubuntu-xenial 500
 500 https://download.docker.com/linux/ubuntu xenial/stable
 amd64 Packages
 17.03.0~ce-0~ubuntu-xenial 500
 500 https://download.docker.com/linux/ubuntu xenial/stable
 amd64 Packages

安装Docker

sudo apt-get install -y docker-ce

验证您安装的Docker版本:

sudo docker version
 Client:
 Version: 17.09.0-ce
 API version: 1.32
 Go version: go1.8.3
 Git commit: afdb6d4
 Built: Tue Sep 26 22:42:18 2017
 OS/Arch: linux/amd64
 Server:
 Version: 17.09.0-ce
 API version: 1.32 (minimum version 1.12)
 Go version: go1.8.3
 Git commit: afdb6d4
 Built: Tue Sep 26 22:40:56 2017
 OS/Arch: linux/amd64
 Experimental: false

每次启动时启动Docker守护程序:

sudo systemctl status docker
 docker.service - Docker Application Container Engine
 Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor
preset: enabled)
 Active: active (running) since Mon 2017-10-23 20:41:43 CEST; 46min
ago
 Docs: https://docs.docker.com
 Main PID: 12117 (dockerd)
 CGroup: /system.slice/docker.service
 ├─12117 /usr/bin/dockerd -H fd://
 └─12141 docker-containerd -l
unix:///var/run/docker/libcontainerd/docker-containerd.sock --metricsinterval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd

为了在没有sudo的情况下运行docker命令,我们需要在Docker组中添加用户:

sudo usermod -aG docker ${USER}

现在,您需要注销并重新登录,才能在不使用sudo的情况下运行docker命令。 而是可以运行以下命令:

su - ${USER}

使用以下命令验证您的用户是否在Docker组中

id

Docker组应该在命令输出中:

uid=1000(catalin) gid=1000(catalin)
groups=1000(catalin),4(adm),20(dialout),
24(cdrom),26(tape),27(sudo),29(audio),30(dip),44(video),46(plugdev),
109(netdev),119(scanner),120(lpadmin),121(sambashare),998(docker)

现在,Docker已安装并配置为在每次启动虚拟机时运行。 为了完成针对移动应用程序的设置,我们需要获取将用于构建和开发移动应用程序的映像以及一些针对移动应用程序的起始代码。

开发映像

要从Docker存储库获取开发映像,请发出以下命令:


稍微等待。

最后,映像将在本地存储库中。 您可以通过运行以下命令来查看当前存储库中的映像:

Docker映像

从开发映像中,您可以启动所需的容器数量。 在每个容器中,您可以开发一个完全独立于另一个应用程序的应用程序。 该应用程序的代码位于容器的外部,但是容器可以访问它,以便对其进行编译在容器内运行。 该阶段的结果将是一个将在您的浏览器中运行的应用程序。 最后,您可以创建一个* .apk文件并在您的手机上对其进行测试:

现在我们已经建立了基础架构,让我们从链接获取一些代码,并使用它启动一个容器:


使用现有代码启动容器。 使用卷映射将代码所在的目录内部映射到容器:


该命令中使用的开关是:

创建容器后,您可以使用以下命令查看其状态:

docker ps

要查看所有已启动和停止的容器,可以使用以下命令:


既然容器已经启动,请在主机中打开浏览器并导航到http:// localhost:8100。 您应该看到一个加载到浏览器中的网页,邀请您输入用户名和密码:

现在,已经为浏览器格式化了应用程序的大小,但是由于您正在开发移动应用程序,因此需要确切地看到它在手机上的外观。 为此,您需要在开发人员工具模式下输入它。 有很多方式可以做到这一点:

  • 在浏览器上用鼠标右键单击,然后选择Inspect
  • 使用键盘组合Ctrl + Shift + I
  • 从菜单中选择“更多工具”,然后选择“Developer Tools”

使用完Developer Tools之后,您可以使用Ctrl + Shift + M组合键来更改页面的外观,或者单击左上角看起来像手机和平板电脑的图像。

现在的布局应该是这样的:

设置本地代理

ESP8266代码

详情参阅http://viadean.com/esp8266_docker.html

你可能感兴趣的:(物联网,esp8266,Docker,容器化,移动)