方法一:在powershell里面执行docker 命令行。创建镜像。
PS C:\Users\psmax> docker images
getting-started ibm 6427019aa127 35 hours ago 93.5MB
node taobao f6ab01ff2c65 35 hours ago 936MB
node latest d2850632b602 7 days ago 936MB
ubuntu latest 26b77e58432b 2 weeks ago 72.9MB
docker/getting-started latest 3ba8f2ff0727 4 weeks ago 27.9MB
alpine/git latest a939554ad0d0 8 weeks ago 25.1MB
PS C:\Users\psmax> docker run -it node:latest /bin/sh
# yarn
yarn install v1.22.5
info No lockfile found.
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 0.08s.
yarn config v1.22.5
success Set "registry" to true.
Done in 0.11s.
true
PS C:\Users\psmax>
PS C:\Users\psmax> docker run -d -p 80:80 docker/getting-started
5758d52a173fb56e25863b2e0b73e2d27c5cfce8d110ae1231d717e41cfdf031
PS C:\Users\psmax> docker run -d -p 80:80 docker/getting-started
562f734d58832fafe53ac4181e1e671c902f1e4c57d33a73223aefd8e0e4e11c
docker: Error response from daemon: driver failed programming external connectivity on endpoint fervent_spence (b5882a4e03e78cc0a49b30866fc5fcf460dbcca3cb1a52c58fde0ba51243c8fe): Bind for 0.0.0.0:80 failed: port is already allocated.
PS C:\Users\psmax> docker run -it node:latest /bin/sh
# yarn config set registry https://registry.npm.taobao.org/ #更改yarn源
success Set "registry" to "https://registry.npm.taobao.org/".
Done in 0.07s.
# yarn config get registry
https://registry.npm.taobao.org/
# exit
PS C:\Users\psmax> docker commit
"docker commit" requires at least 1 and at most 2 arguments.
See 'docker commit --help'.
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Create a new image from a container's changes
PS C:\Users\psmax> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bbee388d6540 node:latest "docker-entrypoint.s…" 2 minutes ago Exited (0) About a minute ago ecstatic_nash
PS C:\Users\psmax> docker commit bbee38 node:taobao
sha256:f66224e216c446526e73d7814e19ee4e3cebbc8a6fe2543ad6adf86287536390
PS C:\Users\psmax> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
node taobao f66224e216c4 20 seconds ago 936MB
getting-started ibm 6427019aa127 36 hours ago 93.5MB
<none> <none> f6ab01ff2c65 36 hours ago 936MB
node latest d2850632b602 7 days ago 936MB
mysql latest cbe8815cbea8 7 days ago 546MB
ubuntu latest 26b77e58432b 2 weeks ago 72.9MB
docker/getting-started latest 3ba8f2ff0727 4 weeks ago 27.9MB
alpine/git latest a939554ad0d0 8 weeks ago 25.1MB
首先将容器里的启动镜像删除之后再启动。这样就可以看到这个registry被设置为taobao.
PS C:\Users\psmax> docker run -it node:taobao /bin/sh
# yarn config get registry
https://registry.npm.taobao.org/
#
方法二: 使用工具Visual Studio Code对Dockerfile进行编辑。
Dockerfile
FROM node:12-alpine
RUN yarn config set registry https://registry.npm.taobao.org/
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
以后我们创建dockerfile,我们可以在docker hub上参考。例如: