我之前没有接触过Docker,尝试源代码编译一个在线自动化服务n8n时总是出错,硬着头皮用 docker 安装了,发现 Docker 还挺方便的。这里记录了一下使用心得,不保证正确。
简介
Docker 有两个重要的概念:镜像(Images)与容器(Containers),镜像相当于一个静态的软件安装包,它已经配置好了所有需要的依赖,因此可以在任何环境下直接运行,运行之后会生成一个 Container 实例,一个镜像也可以生成不同名字与端口的容器。我们直接与容器打交道,如果把容器删除掉,所有的数据会丢失。
使用说明
-
如果启动 Docker Desktop 显示初始化失败,很可能是未打开Hyper-V功能,可以使用以下命令开启(注意:电脑会重启):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
图形界面可以搜索相关的镜像,Pull下载,Run是下载后直接运行(如下图),首次运行时可以输入窗口名字与端口号:
简书图片上传一直失败,没办法,意会吧
配套的命令如下,镜像可以在这里搜索
docker pull n8nio/n8n # 下载镜像
docker run -p <host_port>:<container_port> --name <容器名字> <镜像名字> # 运行实例
docker start <容器名字> # 之后可以如此启动
注意点:
container_port是镜像默认的端口,而host_port是正常使用的映射,产生实例后通过打开浏览器通过http://localhost:<host_port>访问应用
host_port一经设置无法更改,除非删除重新运行镜像
-
如果端口被占用,可以通过以下命令找到与关闭占用的程序,也可以换一个未被使用的端口
netstat -ano | findstr :8080 # TCP 10.10.110.207:9176 60.29.242.161:8080 ESTABLISHED 18400 taskkill /F /PID 18400 # /F 是强制杀死的意思,谨慎使用 # 成功: 已终止 PID 为 18400 的进程。
-
查看所有容器:
docker container ls
包括未运行的所有容器:
docker container ls -a