Good in study, attitude and health

电脑配置-MacBook

关闭和开启 SIP

关闭 SIP

M 系列芯片关机后,长按电源键直到进入恢复模式,在终端中输入csrutil disable

开启 SIP

进入恢复页面,实用工具里选择启动安全性实用工具,选前两个安全性选项都能打开

翻译配置

显示器问题

开发环境配置

Vscode C/C++

  • Mac 用 Visual Studio Code 编写 C/C++
  • Mac 在vs code中使用vim,长按j无法一直向下移动,解决办法:defaults write -g ApplePressAndHoldEnabled -bool false,禁用长按重音字符

配置文章:https://zhuanlan.zhihu.com/p/711413895

Docker 中使用 Ubuntu

安装 Docker

官方网站:https://www.docker.com

下载 Ubuntu 镜像

可在 https://hub.docker.com/_/ubuntu 找到相应镜像,以及安装命令。

// 下载镜像
docker pull ubuntu

启动容器

// 启动
docker run -d -p 2200:22 -p 8000:8000 -p 8001:8001 -p 8002:8002 --name ubuntu -v /Users/leeson/Documents/dev/ubuntu:/home/dev --privileged=true c22ec0081bf1 /usr/sbin/init
  • /Users/leeson/Documents/dev/ubuntu将容器中的文件夹挂载到本地文件夹下
  • c22ec0081bf1填写IMAGE ID,可通过docker images命令查看

如果直接返回一行字符串大概率就没问题。

可能存在的问题

leeson@leesondeMacBook-Air ubuntu % docker run -d -p 2200:22 -p 8000:8000 -p 8001:8001 -p 8002:8002 --name ubuntu -v /Users/leeson/Documents/dev/ubuntu:/home/dev --privileged=true c22ec0081bf1 /usr/sbin/init
d55df074c351afa4db8ddca4e876100da5592bac2880cc9b43da87f90bd0c12b
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/usr/sbin/init": stat /usr/sbin/init: no such file or directory: unknown.

使用 Ubuntu 官方镜像并安装 systemd

如果必须使用特定的 Ubuntu 镜像,可以尝试手动安装 systemd

  1. 先运行一个交互式容器(运行前,先将刚才启动的容器关掉否则会冲突):
docker run -it --name ubuntu c22ec0081bf1 bash
  1. 在容器内安装 systemd
apt update
apt install -y systemd
  1. 然后退出容器,使用 docker commit 将其保存为新镜像:
docker commit ubuntu ubuntu-with-systemd
  1. 使用新镜像运行容器:
docker run -d -p 2200:22 -p 8000:8000 -p 8001:8001 -p 8002:8002 --name ubuntu -v /Users/leeson/Documents/dev/ubuntu:/home/dev --privileged=true ubuntu-with-systemd /lib/systemd/systemd

SSH 连接 Docker 中的 Ubuntu

确保容器中已安装 SSH 服务
  1. 首先,进入 Ubuntu 容器:

    1. docker exec -it <container_name> bash
      
    2. <container_name> 替换为你的容器名称(例如 ubuntu_dev)。
  2. 更新软件包并安装 OpenSSH 服务器:

    1. apt update
      apt install -y openssh-server
      
  3. 启动 SSH 服务并设置自动启动:

    1. service ssh start
      
    2. 你可以将 service ssh start 命令添加到 Dockerfile 中,或将它加入容器的启动命令以确保每次容器启动时 SSH 服务器都会自动运行。
  4. 配置 SSH 服务允许外部访问:

    1. 编辑 SSH 配置文件,确保允许外部访问:

      • vim /etc/ssh/sshd_config
        
    2. 修改 PermitRootLogin 设置为 yes(允许 root 登录)或为某个用户创建密码。

    3. 保存并退出编辑器,然后重启 SSH 服务:

      • service ssh restart
        
设置 Docker 容器的端口映射

运行容器时,将容器内的 SSH 端口(22)映射到本机的一个未被占用的端口(如 2200)。如果容器已经在运行,可以先停止它并重新启动:

docker run -d -p 2200:22 --name ubuntu_dev ubuntu:latest

这里的 2200 是本地端口,可以根据需要进行更改。

创建 SSH 登录用户(如果需要)

如果不想使用 root 用户登录,可以创建一个新用户并设置密码:

adduser username //leeson
passwd username //1708639

root用户密码忘了可以使用下面的命令重置密码

passwd root // admin123
在 Termius 中配置连接
  1. 打开 Termius,点击 New Host 创建一个新的连接。
  2. Label 中设置主机的标签(如 “Ubuntu Docker”)。
  3. Hostname:输入 localhost(或是 Docker 容器所在的 IP 地址)。
  4. Port:输入映射的端口号(如 2200)。
  5. UsernamePassword:填写容器中设置的用户名和密码,或使用 root 用户的登录信息。
  6. 保存并测试连接,确保能够顺利通过 SSH 访问容器。
在 iterm 里配置 ssh 连接
ssh username@localhost -p 端口号
ssh leeson@localhost -p 2200

安装 Ubuntu 虚拟机