docker常用命令

镜像(Image):

  • 镜像是 Docker 中的静态文件,它包含了用于运行容器的所有文件系统内容、应用程序代码、依赖项、库和配置等。
  • 镜像是只读的,一旦创建就不能被修改。你可以基于镜像创建容器,但不能直接修改镜像的内容。
  • 镜像可以看作是一个应用程序的打包和分发形式,它定义了应用程序的运行环境和依赖项。

容器(Container):

  • 容器是镜像的运行实例,是一个轻量级的、独立的运行环境,其中包含了镜像的内容以及额外的运行时信息(如进程、网络配置等)。
  • 容器可以被启动、停止、暂停、重启和删除,它是一个动态的实体。
  • 容器提供了隔离的运行环境,使得应用程序可以在其中独立运行,而不受宿主系统环境的影响。

镜像是用于创建容器的静态模板,而容器是实际运行的、可操作的实体。

常见命令

docker images 列出所有镜像

docker rmi <镜像名称或镜像ID> 删除镜像

docker ps -a 列出所有容器

docker rm <容器名称或容器ID> 删除容器

DockerDesktop改变默认安装路径

Docker Desktop for Windows 下载链接:https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe

双击 Docker Desktop Installer.exe 的话,默认是安装在 C:\Program Files\Docker\Docker

安装过程没有选择路径这一选项,所以如果想安装到其他盘,有以下方法:

1、如果还没有安装 Docker Desktop ,以管理员身份打开 cmd,执行命令:

1
mklink /j "C:\Program Files\Docker" "E:\Docker"

这个命令的作用是将 "C:\Program Files\Docker" 目录创建为一个符号链接,链接到 "E:\Docker" 目录。这样,当你访问 “C:\Program Files\Docker” 目录时,实际上会进入到 "E:\Docker" 目录,两个目录之间共享相同的内容。


2、如果以及安装好了 Docker Desktop,先在任务管理器中停掉 docker ,再重复上面的 cmd 命令。

Linux中使用alias设置别名

  • Linux alias 设置别名:

vim ~/.bashrc ,按 i 进入插入模式;

在结尾加入:

alias 自定义名称='终端命令'

如:

alias n='nvidia-smi'

alias py39='conda activate py39' 进入 conda 环境

alias cdfile='cd /data/xxx/xxx'

然后 source ~/.bashrc , 就可以用已经设置好的别名了!



  • alias 可查看所有别名;

  • 取消别名:unalias 你设置的别名,如 unalias n.

终端如何后台运行命令

一、nohup

1
2
3
nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的nohup.out文件不可写,输出重定向到 $HOME/nohup.out 文件中。

语法格式: nohup 要执行的命令 如:nohup python main.py

作用: 关闭标准输入(控制台无法输入),标准输出错误信息保存到 nohup.out 文件里面,关闭客户端后命令仍然会运行。


二、&

语法格式: 要执行的命令 & 如:python main.py &

作用: 不会关闭标准输入(控制台可以输入),打印日志仍然在终端,但会丢失 标准输出 和 错误信息,关闭客户端后命令会就马上停止。


三、nohup 和 &

所以推荐 nohup 和 & 的结合使用!!!,既可以在后台运行,终端还可以正常输入,也不会有日志打印,而且还可以随意关闭客户端。

语法格式: nohup python main.py &。这时,main.py 同目录下会生成一个 nohup.out 文件,存储了标准输出和错误信息。


四、重定向

nohup python train.py > train.log 2>&1 &

作用: 这个命令可以将 python train.py 的打印输出重定向到和 train.py同目录下的 train.log (写成train.txt 也可以)文件中。同时程序在后台运行,终端不会打印,可以正常输入,且可以关闭终端

其中,> file 表示将 标准输出 输出到 file文件;

1)> train.log 解释 :

python train.py运行的日志 重定向 写入到 train.log文件中,即输出内容不打印到屏幕上,而是输出到 train.log文件中。

2)2>&1 解释:

将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 train.log 文件中。

1
2
3
0 – stdin (standard input,标准输入)
1 – stdout (standard output,标准输出)
2 – stderr (standard error,标准错误输出)

3)> train.log 2>&1 解释:

标准错误 重定向到 标准输出标准输出 再重定向到 train.log 中,即标准错误和标准输出都记录在了train.log

hexo博客小白搭建指南

前提:安装好 node.js 和 git

1、安装 hexonpm install -g hexo-cli

2、在一个空文件夹下创建 hexo 博客的目录

1
2
3
cd <新建文件夹>
hexo init # 初始化,将 github 的 hexo 拉到本地
npm install

随后,hexo -v 即可显示 hexo 各种依赖的版本信息。如:

1
2
3
4
hexo: 7.1.1
hexo-cli: 4.3.1
os: win32 10.0.19045
node: 20.10.0

3、本地预览

1
hexo server  # 启动服务本地预览

可以在本地访问 http://localhost:4000/ 来预览博客

4、部署到 github

1)在 github 新建一个 username.github.io 的空仓库(如果里面有文件会覆盖掉)。

2)本地需要先 SSH 绑定好 github 账号:ssh-keygen -t rsa -C "email@example.com",将 id_rsa.pub 的公钥复制到 github 头像那里 setting 的 SSH keys,本地运行:ssh -T git@github.com 测试是否 SSH 绑定成功。

1
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

3)修改配置文件 _config.yml

1
2
3
4
hexo clean  # hexo cl  
hexo generate # hexo g
# 第一次deploy之前需要 npm install hexo-deployer-git --save
hexo deploy # hexo d

可以在 github 仓库的右侧 Deployments 看到部署情况:

完成!然后就可以在 username.github.io 访问你自己的博客了。

部署可能要花点时间,所以页面显示需要等一会。

附录

1、hexo 文件目录结构

public 放的是生成的静态页面;

source/_posts 放的是博客文章;

themes 放的是博客的主题配置;

_config.yml 是博客全局配置文件;

2、不需要在仓库新建的时候创建 README ,在本地 source 目录下创建一个 README 即可,自动展示在 github 仓库中。

并且在 _config.yml 中设置 skip_render: README.md 让 md 文件不被转换成 HTML

TO DO

  • source 一级文件目录变成多级文件目录

End.