https://yeasy.gitbooks.io/docker_practice/image/dockerfile/workdir.html
WORKDIR 指定工作目录
格式为 WORKDIR <工作目录路径>。
使用 WORKDIR 指令可以来指定工作目录(或者称为当前目录),以后各层的当前目录就被改为指定的目录,如该目录不存在,WORKDIR会帮你建立目录。
之前提到一些初学者常犯的错误是把 Dockerfile 等同于 Shell 脚本来书写,这种错误的理解还可能会导致出现下面这样的错误:RUN cd /app RUN echo “hello” > world.txt
如果将这个 Dockerfile 进行构建镜像运行后,会发现找不到 /app/world.txt 文件,或者其内容不是 hello。原因其实很简单,在 Shell 中,连续两行是同一个进程执行环境,因此前一个命令修改的内存状态,会直接影响后一个命令;而在 Dockerfile 中,这两行 RUN 命令的执行环境根本不同,是两个完全不同的容器。这就是对 Dockerfile 构建分层存储的概念不了解所导致的错误。
之前说过每一个 RUN 都是启动一个容器、执行命令、然后提交存储层文件变更。第一层 RUN cd /app 的执行仅仅是当前进程的工作目录变更,一个内存上的变化而已,其结果不会造成任何文件变更。而到第二层的时候,启动的是一个全新的容器,跟第一层的容器更完全没关系,自然不可能继承前一层构建过程中的内存变化。
因此如果需要改变以后各层的工作目录的位置,那么应该使用 WORKDIR 指令。
https://geek.ink/forum/detail/34
p.p1 {margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px ‘Helvetica Neue’; color: #454545; min-height: 17.0px} p.p2 {margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px ‘Helvetica Neue’; color: #454545} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ‘Helvetica Neue’; color: #454545; min-height: 15.0px} p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ‘Helvetica Neue’; color: #454545} p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ‘Helvetica Neue’; color: #454545; min-height: 14.0px} span.s1 {font: 12.0px ‘.PingFang TC’} span.
http://xstarcd.github.io/wiki/shell/exec_redirect.html
http://yutianx.info/2017/10/07/2017-10-07-docker-ethereum/
https://github.com/Capgemini-AIE/ethereum-docker
1、close hyper-v
https://ugetfix.com/ask/how-to-disable-hyper-v-in-windows-10/
2、install Virtualbox
3、install git
4、https://docs.docker.com/machine/install-machine/#install-machine-directly
git-bash
base=https://github.com/docker/machine/releases/download/v0.14.0 && mkdir -p “$HOME/bin” && curl -L $base/docker-machine-Windows-x86_64.exe > “$HOME/bin/docker-machine.exe” && chmod +x “$HOME/bin/docker-machine.exe”
5、
git-bash
docker-machine create –driver=virtualbox machine1
docker-machine -s d:\docker create –driver=virtualbox machine1
docker-machine list
docker-machine ssh machine1
docker run hello-world
docker-machine env machine1
https://hk.saowen.com/a/00c8a80e4a74fcf80111ba570f4db601e204c12f61e3109fec92cac8a15456ae
docker-machine -s d:\docker create --driver=virtualbox --virtualbox-memory=2048 --virtualbox-cpu-count=2 --engine-opt dns=8.8.8.8 machine_name_ooxxooxx
=====
http://sueboy.blogspot.com/2018/11/docker-machine-ssh-login-use-xshell-or.html
user: docker
id_rsa
1、go
mkdir directory aaa
create file go_httpserver.go
package main
import (
“fmt”
“net/http”
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, “Welcome to my Website!!!\n %s”, r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(“0.0.0.0:80”, nil)
}
set GOARCH=amd64
set GOOS=linux
go build go_httpserver.go => get linux go program
2、create docker image
2.1 install docker toolbox Link 2.2 run kitematic then see left-down DOCKER CLI , click it, then 2.2.1 create directory bbb