diff --git a/Docker/Arguments/Image.vb b/Docker/Arguments/Image.vb
new file mode 100644
index 0000000..0caca05
--- /dev/null
+++ b/Docker/Arguments/Image.vb
@@ -0,0 +1,51 @@
+Imports System.Runtime.CompilerServices
+
+Namespace Arguments
+
+ '''
+ ''' Docker image name
+ '''
+ Public Class Image
+
+ Public Property Publisher As String
+ Public Property Package As String
+
+ Public Shared Function ParseEntry(text As String) As Image
+ With text.Trim.Split("/"c)
+ Dim user$, name$
+
+ If .Length = 1 Then
+ user = Nothing
+ name = .ElementAt(0)
+ Else
+ user = .ElementAt(0)
+ name = .ElementAt(1)
+ End If
+
+ Return New Image With {
+ .Package = name,
+ .Publisher = user
+ }
+ End With
+ End Function
+
+
+ Public Overrides Function ToString() As String
+ If Publisher.StringEmpty Then
+ Return Package
+ Else
+ Return $"{Publisher}/{Package}"
+ End If
+ End Function
+
+
+ Public Shared Widening Operator CType(repo As String) As Image
+ Return ParseEntry(repo)
+ End Operator
+
+
+ Public Shared Narrowing Operator CType(img As Image) As String
+ Return img.ToString
+ End Operator
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/Docker/Arguments/Mount.vb b/Docker/Arguments/Mount.vb
new file mode 100644
index 0000000..cc6c960
--- /dev/null
+++ b/Docker/Arguments/Mount.vb
@@ -0,0 +1,25 @@
+Namespace Arguments
+
+ '''
+ ''' 共享文件夹
+ '''
+ Public Class Mount
+
+ '''
+ ''' 宿主机内的本地文件夹全路径
+ '''
+ Public Property local As String
+ '''
+ ''' 虚拟机内的文件路径,共享文件夹将会在虚拟机内被挂载到这个路径上面
+ '''
+ Public Property virtual As String
+
+ '''
+ ''' ``local:virtual``
+ '''
+ '''
+ Public Overrides Function ToString() As String
+ Return $"{local.GetDirectoryFullPath}:{virtual}"
+ End Function
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/Docker/Captures/Models.vb b/Docker/Captures/Models.vb
index f17629c..80531dd 100644
--- a/Docker/Captures/Models.vb
+++ b/Docker/Captures/Models.vb
@@ -1,4 +1,6 @@
-Namespace Captures
+Imports Darwinism.Docker.Arguments
+
+Namespace Captures
Public Structure Search
Dim NAME As Image
diff --git a/Docker/Commands.vb b/Docker/Commands.vb
index 9a6ac1c..cf7a1dd 100644
--- a/Docker/Commands.vb
+++ b/Docker/Commands.vb
@@ -1,4 +1,5 @@
Imports System.Text
+Imports Darwinism.Docker.Arguments
Imports Darwinism.Docker.Captures
'''
diff --git a/Docker/Docker.vbproj b/Docker/Docker.vbproj
index de94ede..e913c9f 100644
--- a/Docker/Docker.vbproj
+++ b/Docker/Docker.vbproj
@@ -93,9 +93,10 @@
+
-
+
diff --git a/Docker/Image.vb b/Docker/Image.vb
deleted file mode 100644
index e1858dd..0000000
--- a/Docker/Image.vb
+++ /dev/null
@@ -1,71 +0,0 @@
-Imports System.Runtime.CompilerServices
-
-'''
-''' Docker image name
-'''
-Public Class Image
-
- Public Property Publisher As String
- Public Property Package As String
-
- Public Shared Function ParseEntry(text As String) As Image
- With text.Trim.Split("/"c)
- Dim user$, name$
-
- If .Length = 1 Then
- user = Nothing
- name = .ElementAt(0)
- Else
- user = .ElementAt(0)
- name = .ElementAt(1)
- End If
-
- Return New Image With {
- .Package = name,
- .Publisher = user
- }
- End With
- End Function
-
-
- Public Overrides Function ToString() As String
- If Publisher.StringEmpty Then
- Return Package
- Else
- Return $"{Publisher}/{Package}"
- End If
- End Function
-
-
- Public Shared Widening Operator CType(repo As String) As Image
- Return ParseEntry(repo)
- End Operator
-
-
- Public Shared Narrowing Operator CType(img As Image) As String
- Return img.ToString
- End Operator
-End Class
-
-'''
-''' 共享文件夹
-'''
-Public Class Mount
-
- '''
- ''' 宿主机内的本地文件夹全路径
- '''
- Public Property local As String
- '''
- ''' 虚拟机内的文件路径,共享文件夹将会在虚拟机内被挂载到这个路径上面
- '''
- Public Property virtual As String
-
- '''
- ''' ``local:virtual``
- '''
- '''
- Public Overrides Function ToString() As String
- Return $"{local.GetDirectoryFullPath}:{virtual}"
- End Function
-End Class
\ No newline at end of file
diff --git a/Docker/test/Module1.vb b/Docker/test/Module1.vb
index 2de1d00..72b9213 100644
--- a/Docker/test/Module1.vb
+++ b/Docker/test/Module1.vb
@@ -1,4 +1,5 @@
Imports Darwinism
+Imports Darwinism.Docker.Arguments
Imports Microsoft.VisualBasic.Serialization.JSON
Module Module1
@@ -14,7 +15,7 @@ Module Module1
Call Console.WriteLine(Docker.Run("centos", "echo ""hello world"""))
- Call Console.WriteLine(Docker.Run("centos", "ls -l /mnt/ntfs", New Docker.Mount With {.local = "D:\test", .virtual = "/mnt/ntfs"}))
+ Call Console.WriteLine(Docker.Run("centos", "ls -l /mnt/ntfs", New Mount With {.local = "D:\test", .virtual = "/mnt/ntfs"}))
For Each line In Docker.CommandHistory
Call Console.WriteLine(line)