容器映像是一个软件的轻量级独立可执行软件包,包括运行该映像所需的一切:代码,运行时,系统工具,系统库和设置。 这样,您无需安装大量的库和软件,就可以使用现有映像并从中启动一个容器。
我们将使用具有Ionic和Android SDK的容器,该容器将允许您开发和测试移动应用程序。
在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存储库获取开发映像,请发出以下命令:
>
稍微等待。
最后,映像将在本地存储库中。 您可以通过运行以下命令来查看当前存储库中的映像:
从开发映像中,您可以启动所需的容器数量。 在每个容器中,您可以开发一个完全独立于另一个应用程序的应用程序。 该应用程序的代码位于容器的外部,但是容器可以访问它,以便对其进行编译在容器内运行。 该阶段的结果将是一个将在您的浏览器中运行的应用程序。 最后,您可以创建一个* .apk文件并在您的手机上对其进行测试:
现在我们已经建立了基础架构,让我们从链接获取一些代码,并使用它启动一个容器:
>
使用现有代码启动容器。 使用卷映射将代码所在的目录内部映射到容器:
>
该命令中使用的开关是:
创建容器后,您可以使用以下命令查看其状态:
docker ps
要查看所有已启动和停止的容器,可以使用以下命令:
>
既然容器已经启动,请在主机中打开浏览器并导航到http:// localhost:8100。 您应该看到一个加载到浏览器中的网页,邀请您输入用户名和密码:
现在,已经为浏览器格式化了应用程序的大小,但是由于您正在开发移动应用程序,因此需要确切地看到它在手机上的外观。 为此,您需要在开发人员工具模式下输入它。 有很多方式可以做到这一点:
使用完Developer Tools之后,您可以使用Ctrl + Shift + M组合键来更改页面的外观,或者单击左上角看起来像手机和平板电脑的图像。
现在的布局应该是这样的:
详情参阅http://viadean.com/esp8266_docker.html