使用
初始化
在Windows7 x64上初始化
下载
安装Docker
默认请全部勾选。
- 如果已经安装过git可不安装,不过会导致Docker Quickstart Terminal打不开,需要右击编辑属性,修改
快捷方式
中的git地址。 - 如果出现
Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, CLSID_VirtualBox w/ IUnknown works.
错误,需要修改注册表。需要将HKEY_CLASSES_ROOT\CLSID\{00020420-0000-0000-C000-000000000046}\InprocServer32
和HKEY_CLASSES_ROOT\CLSID\{00020424-0000-0000-C000-000000000046}\InprocServer32
的默认值修改为C:\Windows\system32\oleaut32.dll
。
安装完成后,请打开Docker Quickstart Terminal
输入docker
,查看docker是否安装成功。
创建虚拟机
- 打开
Docker Quickstart Terminal
- 运行
docker-machine create --driver virtualbox [虚拟机名称]
命令,创建虚拟机 - 运行
docker-machine env [虚拟机名称]
命令,使虚拟机与docker-machine关联(PS: 每次重启虚拟机都需要执行该命令) - 执行第3步后,执行
Run this command to configure your shell:
指示的命令,例如我的是:eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env mpos)
(PS: 每次执行第3步都需要执行该命令) - 运行
docker-machine ls
命令,查看当前的所有虚拟机以及运行状态 - 运行
docker-machine ssh [虚拟机名称]
命令,进入虚拟机
修改docker源
- 打开
Docker Quickstart Terminal
- 运行
docker-machine ssh [虚拟机名称]
命令进入虚拟机 - 运行
sudo vi /var/lib/boot2docker/profile
命令编辑profile文件,并点击i
按钮进入编辑模式,接着在--label provider=virtualbox
的下一行添加--registry-mirror https://registry.docker-cn.com
,然后点击Esc
按钮退出编辑模式,最后输入:wq
保存文件并退出 - 运行
sudo /etc/init.d/docker restart
命令重启docker服务,或者也可以输入exit
命令退出虚拟机,然后运行docker-machine restart [虚拟机名称]
命令重启docker虚拟机 - 运行
docker info
命令,查看Registry Mirrors是否变更
在CentOS7上初始化
安装Docker
参考地址:docs.docker.com/install/lin…
-
Uninstall old versions
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
Install required packages
$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
-
set up the stable repository
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
-
Install the latest version of Docker CE
$ sudo yum install docker-ce
-
Start Docker
$ sudo systemctl start docker
-
Verify that docker is installed correctly by running the hello-world image.
$ sudo docker run hello-world
修改docker源
- 运行
cd /etc/docker/
命令,进入指定文件夹 - 运行
sudo touch daemon.json
命令,创建指定文件 -
运行
sudo vi daemon.json
命令编辑指定文件,并点击i
按钮进入编辑模式,接着输入{ "registry-mirrors": ["https://registry.docker-cn.com"] }
,然后点击
Esc
按钮退出编辑模式,最后输入:wq
保存文件并退出 - 运行
sudo systemctl daemon-reload
命令 - 运行
sudo systemctl restart docker
命令,重启docker - 运行
docker info
命令,查看Registry Mirrors是否变更
常用命令
docker-machine
docker-machine create --driver virtualbox [虚拟机名称] # 创建docker虚拟机
docker-machine env [虚拟机名称] # 虚拟机与docker-machine关联
docker-machine ls # 查看当前的所有虚拟机以及运行状态
docker-machine ssh [虚拟机名称] # 进入虚拟机
docker-machine rm [虚拟机名称] # 删除虚拟机
docker-machine start [虚拟机名称] # 启动虚拟机
docker-machine stop [虚拟机名称] # 停止虚拟机
docker-machine restart [虚拟机名称] # 重启虚拟机
docker-machine status [虚拟机名称] # 查看虚拟机状态
docker-machine url [虚拟机名称] # 查看虚拟机地址
docker
docker version # 查看docker版本
docker info # 查看docker系统信息
docker search [镜像名称] # 从hub.docker.com上搜索镜像
docker rmi [镜像名称] # 删除一个或多个镜像
docker ps # 查看正在运行的容器
docker ps -a # 查看的容器
docker cp 源路径 [容器名名称或ID]:目标路径 # 将主机的目录或文件拷贝到容器的目标路径下
docker cp [容器名名称或ID]:源路径 目标路径 # 将容器的目录或文件拷贝到主机的目标路径下
docker rm [容器名称或ID] # 删除一个或多个容器
docker start [容器名称或ID] # 启动一个或多个已经停止的容器
docker stop [容器名称或ID] # 停止一个或多个正在运行的容器
docker restart [容器名称或ID] # 重启一个或多个容器
docker run [容器名名称或ID] # 在新容器中运行命令,默认执行命令/bin/bash
docker pull [remoteURL]:[imageTag] # 拉取提交的容器,eg:docker pull electronuserland/builder:wine
重要链接
实战
Build Electron App using Docker on a Local Machine
- 如果Local Machine是Windows7 x64,需执行1~5步
- 如果Local Machine是CentOS7,仅需执行3~5步
- 打开
Docker Quickstart Terminal
- 运行
docker-machine ssh [虚拟机名称]
命令进入虚拟机 - 运行
docker pull electronuserland/builder:wine
命令下载打包环境 - 修改工程文件夹下的
.travis.yml
文件内容为raw.githubusercontent.com/fengqingxiu… -
进入工程文件夹,然后运行
docker run --rm -ti \ --env-file <(env | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS_TAG|TRAVIS|TRAVIS_REPO_|TRAVIS_BUILD_|TRAVIS_BRANCH|TRAVIS_PULL_REQUEST_|APPVEYOR_|CSC_|GH_|GITHUB_|BT_|AWS_|STRIP|BUILD_') \ --env ELECTRON_CACHE="/root/.cache/electron" \ --env ELECTRON_BUILDER_CACHE="/root/.cache/electron-builder" \ -v ${PWD}:/project \ -v ${PWD##*/}-node-modules:/project/node_modules \ -v ~/.cache/electron:/root/.cache/electron \ -v ~/.cache/electron-builder:/root/.cache/electron-builder \ electronuserland/builder:wine
命令启动docker容器,最后运行
yarn run build:clean && yarn run pack && yarn run build -w
命令生成exe包