Docker 必备的 PowerShell 别名设置教程,轻松应对日常办公

简介: 作为一名使用 Docker 办公的程序员来说,我每天需要使用到大量的 docker 命令。通过在 PowerShell 中将这些命令处理成别名的形式,我节省了大量打字的时间以及处理拼写错误和修复拼写错误的时间。

screenshot

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!


作为一名使用 Docker 办公的程序员来说,我每天需要使用到大量的 docker 命令。通过在 PowerShell 中将这些命令处理成别名的形式,我节省了大量打字的时间以及处理拼写错误和修复拼写错误的时间。例如:当我想删除所有容器时,我只需要输入 drmf 即可,当我想将容器的IP地址添加到我的主机文件时,我只需要输入 d2h 即可,这就是我对于别名的应用。


别名和 PowerShell 配置文件

screenshot

别名就是您可以为常用的命令指定一个简短的名称。您可以使用 Set-Alias 命令来为常用命令添加别名的指定名称,以及它应该运行的命令。所以,如果您无法忍受通过输入代码来启动 VS Code,那么您就可以将它的别名设置为“c”,如下所示:

Set-Alias -Name c -Value code

如果要为更加复杂的命令添加别名时,您可以先创建一个函数,然后为该函数设置别名。所以,如果您早上上班的例行程序是从打开 Chrome、Firefox、VS Code 和 Slack 开始时,那么您就可以将其添加到一个函数中并将这个函数的别名设置为“am”,如下所示:

function Start-TheDay { start chrome; start firefox; start code; start slack; } 
Set-Alias -Name am -Value Start-TheDay

需要注意的是,设置的别名仅存在于会话期间。要想使它们永久存在,您需要将它们保存在 PowerShell 的配置文件中,以便每次启动会话时都能使用它们。

screenshot

您可能已经拥有了一个由您或工具创建的配置文件,运行 notepad $profile 命令来找到它。如果可以打开 Notepad,那么您只需粘贴要在每个会话中使用的函数和别名即可。如果您收到错误消息,指出该文件或目录不存在,请先运行 New-Item -Path $ profile -ItemType file –force 命令,然后再次运行 notepad $profile 命令即可。


Docker PowerShell 别名1:“drm”

“drm” 别名可以删除所有已停止的容器。 当您想在一堆正在运行的容器中删除那些已停止运行的容器时,该别名很有用:

function Remove-StoppedContainers { 
   docker container rm $(docker container ls -q)
}
Set-Alias drm Remove-StoppedContainers

Docker PowerShell 别名2:“drmf”

“drmf” 别名可以删除所有容器,无论它们是否正在运行。 当您想要重置正在运行的容器并打算从零开始时,该别名很有用:

function Remove-AllContainers { 
   docker container rm -f $(docker container ls -aq)
}

Set-Alias drmf Remove-AllContainers
注意:请谨慎使用该别名。


Docker PowerShell 别名3:“dip”

“dip” 别名可以获取容器的 IP 地址,并将容器名称或容器 ID 的一部分传递给它,例如 dip 02a 或 dip signup-db。当您想要直接连接到容器,而不是使用主机上已发布的端口时,该别名很有用:

function Get-ContainerIPAddress { 
   param (
       [string] $id
   )
   & docker inspect --format '{{ .NetworkSettings.Networks.nat.IPAddress }}' $id
}
Set-Alias dip Get-ContainerIPAddress

Docker PowerShell 别名4:“d2h”

“d2h” 别名可以将容器的 IP 地址添加到主机的 hosts 文件中,因此您可以在 Docker 主机上按名称引用容器,就像容器通过名称来相互访问一样。

举个例子:我有一个使用 SQL 数据库的 Web 应用程序。在开发和测试环境中,我将在数据库的容器中运行 SQL Server 服务。该容器称为“petshop-db”,并且 Web 配置中的所有连接字符串都使用“petshop-db”作为数据库服务器名称。如果我想在本地运行这个 Web 应用程序,但仍然使用上述数据库的容器,此时,我只需启动容器并运行“d2h petshop-db”命令即可。现在我的 Web 应用程序使用的是来自 hosts 文件的容器 IP,所以我可以使用 docker-compose up 命令来运行整个应用栈,而无需更改任何配置。

非常有用的别名,因此您可以使用容器的名称来打包默认配置的设置,从而在本地运行您的应用程序。

function Add-ContainerIpToHosts { 
   param (
       [string] $name
   )
   $ip = docker inspect --format '{{ .NetworkSettings.Networks.nat.IPAddress }}' $name
   $newEntry = "$ip $name #added by d2h# `r`n"
   $path = 'C:\Windows\System32\drivers\etc\hosts'
   $newEntry + (Get-Content $path -Raw) | Set-Content $path
}
Set-Alias d2h Add-ContainerIpToHosts

注意:该别名有可能弄乱您的 hosts 文件,它添加的行都带有“#added d2h#”样式的后缀,所以您可以编写一个清理命令(或别名)的脚本来处理它。

“d2h” 别名会在 hosts 文件顶部添加行,因此如果 hosts 文件顶部存在多行时(由“d2h” 别名添加的行),Windows 会优先采用第一行的内容。所以,每次启动新容器时,您都可以运行“d2h petshop-db”命令,只需将当前容器的 IP 地址置于 hosts 文件的顶部即可。


所有的别名

screenshot

我已经将我的 PowerShell 配置文件保存在 GitHub Gist 中,您浏览 https://gist.github.com/sixeyed/c3ae1fd8033b8208ad29458a56856e05 ,将整个文档复制到 $ profile 文件中,然后在 PowerShell 中运行它。 $ profile 会用新别名更新当前会话。 GitHub Gist 还具有自定义提示功能,使 PowerShell 的提示更像 Linux 终端。

相关文章
|
28天前
|
机器人 网络安全 数据安全/隐私保护
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
本文介绍了如何在服务器上搭建NTQQ机器人,通过官方NTQQ对接各框架,实现QQ登录的稳定运行。文章提到了需要准备一台服务器和相应的软件,并详细描述了通过SSH链接服务器、创建文件夹和配置文件、编辑配置文件地址端口、运行容器等步骤。同时,文章还介绍了VNC连接的使用和配置,以及使用watchtower进行NTQQ的更新。文章总结起来就是在服务器上搭建NTQQ机器人,实现QQ登录的稳定性和自动登录功能,同时提供了更新和维护的方法。
63 3
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
|
22天前
|
存储 Ubuntu 安全
|
1月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
697 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
27天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
227 3
|
1月前
|
数据可视化 数据挖掘 Docker
Docker Desktop 安装 ClickHouse 超级简单教程
Docker Desktop 安装 ClickHouse 超级简单教程
50 1
|
1月前
|
存储 Ubuntu 安全
Docker设置
【10月更文挑战第3天】Docker设置
|
1月前
|
前端开发 开发工具 git
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
34 5
|
1月前
|
定位技术 文件存储 网络架构
Docker部署PhotoPrism、Immich图片管理应用,无需公网IP远程访问教程
除了Synology、QNAP、TerraMaster等品牌的NAS设备内置图库功能,市面上还有多种备受欢迎的第三方应用,如PhotoPrism、Immich、LibrePhotos、Piwigo、Photoview等。这些应用不仅提供强大的图片管理能力,还可通过Docker轻松部署。借助贝锐花生壳服务,即使没有公网IP也能实现远程访问,突破地理限制,提升数据可访问性和安全性,让用户随时随地管理私人图库。
116 1
|
1月前
|
存储 应用服务中间件 nginx
|
1月前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库如何设置忽略表名大小写?
【10月更文挑战第1天】使用Docker部署的MySQL数据库如何设置忽略表名大小写?
150 1
下一篇
无影云桌面