Docker使用手册 嵌入式Linux环境搭建

2020-09-30 12:10:03 浏览数 (1)

2.3.3 使用Docker

使用Docker之前,请一定先看看前面的《概念介绍》,了解Docker的镜像、容器的概念。

2.3.3.1 运行“Docker Desktop”

双击桌面“Docker Desktop”图标运行,如果一切正常,可以在任务栏看到以下图标:

如果上图中的鲸鱼图标一直在喷水,表示它还在启动中。启动完毕后,鲸鱼图标就不再喷水,你就可以使用Docker了。

2.3.3.2 设置Docker存储目录
2.3.3.3 使用MobaXterm打开命令行

这不是必须的。 可以在Windows命令行、PowerShell下执行各种Docker命令,但是这2个工具都太难用了,MobaXterm比它们好用100倍。 启动MobaXterm后,照下图操作新建一个Session:

执行完上述操作后,可以在MobaXterm左侧看到名为“Powershell”的按钮,双击它就可以进入命令行:

2.3.3.4 下载Ubuntu镜像

在MobaXterm中打开Powershell命令行,执行如下命令:

代码语言:javascript复制
docker  pull   weidongshan/ubuntu-18.04:version1.0 

以后可以执行以下命令查看这些镜像:

代码语言:javascript复制
docker  image   ls
2.3.3.5 创建volume

volume用来保存我们的数据,在MobaXterm中打开Powershell命令行,执行如下命令。本命令只需要执行一次:

2.3.3.6 创建容器

这个命令只需要执行一次,在MobaXterm中打开Powershell命令行,执行如下命令。 注意:为了方便大家复制,这些命令写成了多行,把它们复制到记事本,合并成一行,注意空格:

代码语言:javascript复制
docker run -h 100ask   --name ubuntu  
-p 1234:1234  -p 22:22 -p 2049:2049  -p 9999:9999  
-it --privileged=true  
--mount source=homedate,target=/home/book  -w /home/book  
--user book  weidongshan/ubuntu-18.04:version1.0  bash 

如下图所示:

这时,可以启动另一个Powershell命令行,执行以下命令查看容器:

代码语言:javascript复制
docker   ps         // 查看“正在运行的容器”
docker   ps   -a    // 查看“所有容器”

如下图:

2.3.3.7 运行、进入、退出、停止容器

如果你重启电脑,或是重启Docker,里面的容器都是“Exited”状态,表示它已经不再运行了,可以执行以下命令启动它:

代码语言:javascript复制
docker   start   ubuntu

如果容器的状态是“Up”,表示它正在运行,可以执行以下命令停止它:

代码语言:javascript复制
docker   stop   ubuntu

一个容器启动后,可以执行它里面的命令,使用以下命令进入容器,它的意思是执行ubuntu容器里的bash命令,i表示interactive(交互)、t表示tty(会打开一个交互终端):

代码语言:javascript复制
docker   exec   -it   ubuntu   bash 

在Ubuntu命令行中执行exit即可退出容器。

2.3.3.8 日常工作

假设你已经创建了容器,那么在日常工作中,你每天打开电脑后,你需要做的就是这个命令:

代码语言:javascript复制
docker   start   ubuntu                  // 启动容器
docker   exec   -it   ubuntu   bash      // 进入容器,开始工作,可以在多个命令行中执行这命令
在Ubuntu下,要先执行start 命令,它会启动SSH、NFS等服务
在Ubuntu下,执行exit退出容器
docker   stop    ubuntu                  // 停止容器,下班回家

如下图所示:

2.3.4 常见问题

2.3.4.1 安装问题

Windows 10教育版、家庭版无法安装Docker,请使用VMware吧。 大部分安装问题都是Hyper-V服务无法启动,请参考《2.3.2 安装Docker》里的1、2、3进行设置;如果还是无法安装,可以参考《2.3.2.5 可能需要升级Windows》。 注意:我曾经在Hyper-V上折腾了一天,网上各种方法可能有用也可能无用,我是升级系统才解决的。

2.3.4.2 网络问题

如果Windows无法远程登录Ubuntu,使用Filezilla无法连接Ubuntu、开发板无法通过NFS挂载Ubuntu,那么很可能是防火墙的问题,或是端口被占用了。 端口被占用时,很可能是VMware的NAT服务,可以如下关闭:

0 人点赞