我是Docker容器的新手。我需要从头开始创建新图像。

我在桌面上有一个名为“游乐场”的文件夹。在该文件夹中,我有一个Java特定版本和OATS文件夹,在OATS文件夹中,我有一个.exe来安装OATS。

需求:

我需要创建一个镜像并将该镜像转换为容器,当我运行该容器时,它应该安装Java和OATS应用程序。

我的Docker信息:

C:\Users\Satish_D1\Desktop\Playground>docker info
Containers: 5
Running: 1
Paused: 0
Stopped: 4
Images: 4
Server Version: 17.06.2-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 6e23458c129b551d5c9871e5174f6b1b7f6d1170
runc version: 810190ceaa507aa2727d7ae6f4790c76ec150bd2
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 4.9.41-moby
Operating System: Alpine Linux v3.5
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.196GiB
Name: moby
ID: DEB5:62EN:AUOA:MNHN:XBSI:XXXR:DRF6:YJPD:4D2Y:672Y:R6EE:DLFG
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
File Descriptors: 22
Goroutines: 34
System Time: 2017-09-11T13:31:33.4927898Z
EventsListeners: 0
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:127.0.0.0/8
Live Restore Enabled: false

到目前为止的工作:

我已经创建了一个Dockerfile,下面是我在Dockerfile中尝试过的代码:
   FROM scratch
   COPY jdk-7u79-windows-x64
   COPY C:\Users\Satish_D1\Desktop\Playground\oats-win64-full-12.5.0.3.1012\setup.bat

Image01

Image02

提前致谢,
饱足的

最佳答案

有一些错误是显而易见的。首先,根据文件名,您似乎正在尝试在Linux运行时上运行Windows二进制文件。这将不起作用,Linux内核将无法运行Windows二进制文件。

接下来,当您尝试使用暂存器时,镜像文件系统上将没有任何内容,它完全是空的。其中不包括库, shell 程序和分发包工具。通常对静态链接的二进制文件以及将其整个操作系统文件系统打包为tar文件且打包为第一步的OS基本镜像都使用草稿。如果您的jdk不包括所有的OS库,shell和其他依赖项,那么您需要的不仅仅是“临时”作为基本镜像。

如果确定要使用暂存器作为基础,那么我将在Docker集线器上查看所需的jdk镜像,并跟踪镜像树,直到您开始使用暂存器,并查看重新创建该jdk镜像所需的所有步骤。如果要重新创建此仓库,则可能需要 checkout 多个仓库。而且,如果要使用Windows而不是Linux二进制文件来执行此操作,则需要更改Docker主机设置,并考虑重新创建Windows核心基础镜像。

关于docker - 如何从头开始创建Dockerfile,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46157746/

10-09 06:46
查看更多