好物优选点击查看详情 京东购买

暂无内容

docker配置ubuntu环境

主力电脑是MacBook,有时候需要ubuntu环境只能求助于docker。同时一直在用的朋友服务器最近改成了nixos,不太适应,也需要docker配置ubuntu。
所以配置的ubuntu docker为主力环境,日常开启用ssh连接。
第一步:

<span class="token function">docker</span> pull ubuntu
<span class="token function">docker</span> pull ubuntu 
docker pull ubuntu

默认下载最新版——22.04。
在家里目录下创建ubuntu22目录,与ubuntu镜像进行挂载,然后启动ubuntu镜像为container

<span class="token function">docker</span> run --name ubuntu22 -h ubuntu22-docker -ti -d -v /home/*username*/ubuntu22/:/home/*username*/ -p <span class="token number">9001</span>:22 ubuntu
<span class="token function">docker</span> run --name ubuntu22 -h ubuntu22-docker -ti -d -v /home/*username*/ubuntu22/:/home/*username*/ -p <span class="token number">9001</span>:22 ubuntu 
docker run --name ubuntu22 -h ubuntu22-docker -ti -d -v /home/*username*/ubuntu22/:/home/*username*/ -p 9001:22 ubuntu

其中 –name是跑起来的container的名字;-h设定了ubuntu的hostname;-ti是即使没有连接,也要保持标准输入保持打开状态,一般t与i二者连用;-d后台运行;-v将本地文件夹与ubuntu容器中的文件夹映射到一起,-p则本地的9001端口与ubuntu 的22端口映射到了一起,如此一来便可以直接通过访问9001端口ssh连接ubuntu

<span class="token function">docker</span> <span class="token builtin class-name">exec</span> -ti ubuntu22 /bin/bash
<span class="token function">docker</span> <span class="token builtin class-name">exec</span> -ti ubuntu22 /bin/bash 
docker exec -ti ubuntu22 /bin/bash

启动进入ubuntu镜像

<span class="token function">apt</span> update
<span class="token function">apt</span> update 
apt update

更新apt源头

<span class="token function">apt</span> <span class="token function">install</span> -y <span class="token function">sudo</span> openssh-client openssh-server <span class="token function">vim</span>
<span class="token function">apt</span> <span class="token function">install</span> -y <span class="token function">sudo</span> openssh-client openssh-server <span class="token function">vim</span> 
apt install -y sudo openssh-client openssh-server vim

启动ssh

<span class="token function">service</span> <span class="token function">ssh</span> start
<span class="token function">service</span> <span class="token function">ssh</span> start 
service ssh start

ubuntu docker需要自行安装sudo、ssh、vim。

<span class="token function">passwd</span> <span class="token function">useradd</span> -d /home/*username* -m *username* -s /bin/bash -g <span class="token function">sudo</span> <span class="token function">passwd</span> *username* <span class="token function">su</span> *username* <span class="token operator">&&</span> <span class="token builtin class-name">cd</span> ~
<span class="token function">passwd</span>  <span class="token function">useradd</span> -d /home/*username* -m *username* -s /bin/bash -g <span class="token function">sudo</span>  <span class="token function">passwd</span> *username*  <span class="token function">su</span> *username* <span class="token operator">&&</span> <span class="token builtin class-name">cd</span> ~  
passwd useradd -d /home/*username* -m *username* -s /bin/bash -g sudo passwd *username* su *username* && cd ~

完成初始设置后切入用户进行操作

<span class="token function">mkdir</span> ./.ssh <span class="token function">vim</span> ./.ssh/auhorized_keys <span class="token function">service</span> <span class="token function">ssh</span> restart
<span class="token function">mkdir</span> ./.ssh  <span class="token function">vim</span> ./.ssh/auhorized_keys  <span class="token function">service</span> <span class="token function">ssh</span> restart 
mkdir ./.ssh vim ./.ssh/auhorized_keys service ssh restart

配置ssh密钥免密码登陆。两次control+d后退出docker,此时在本地terminal执行

<span class="token function">ssh</span> -p <span class="token number">9001</span> *username*@localhost
<span class="token function">ssh</span> -p <span class="token number">9001</span> *username*@localhost 
ssh -p 9001 *username*@localhost

测试是否连接成功。
最后安装常用包

<span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">install</span> -y <span class="token function">curl</span> <span class="token function">wget</span> <span class="token function">git</span> inetutils-ping tmux <span class="token function">htop</span>
<span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">install</span> -y <span class="token function">curl</span> <span class="token function">wget</span> <span class="token function">git</span> inetutils-ping tmux <span class="token function">htop</span>  
sudo apt install -y curl wget git inetutils-ping tmux htop

接下来是偏主观个人爱好了,由于自带的bash比较丑陋,所以将其用zsh和oh my zsh进行美化。

<span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">install</span> <span class="token function">zsh</span> chsh -s <span class="token variable"><span class="token variable">$(</span><span class="token function">which</span> <span class="token function">zsh</span><span class="token variable">)</span></span>
<span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">install</span> <span class="token function">zsh</span> chsh -s <span class="token variable"><span class="token variable">$(</span><span class="token function">which</span> <span class="token function">zsh</span><span class="token variable">)</span></span>  
sudo apt install zsh chsh -s $(which zsh)

重连后进入zshbash,继续进行zsh的初步配置

<span class="token function">sh</span> -c <span class="token string">"<span class="token variable"><span class="token variable">$(</span><span class="token function">curl</span> -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh<span class="token variable">)</span></span>"</span> <span class="token function">git</span> clone --depth<span class="token operator">=</span><span class="token number">1</span> https://gitee.com/romkatv/powerlevel10k.git <span class="token variable">${ZSH_CUSTOM<span class="token operator">:-</span>$HOME<span class="token operator">/</span>.oh-my-zsh<span class="token operator">/</span>custom}</span>/themes/powerlevel10k
<span class="token function">sh</span> -c <span class="token string">"<span class="token variable"><span class="token variable">$(</span><span class="token function">curl</span> -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh<span class="token variable">)</span></span>"</span>   <span class="token function">git</span> clone --depth<span class="token operator">=</span><span class="token number">1</span> https://gitee.com/romkatv/powerlevel10k.git <span class="token variable">${ZSH_CUSTOM<span class="token operator">:-</span>$HOME<span class="token operator">/</span>.oh-my-zsh<span class="token operator">/</span>custom}</span>/themes/powerlevel10k 
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

将~/.zshrc中的主题项设置为

<span class="token assign-left variable">ZSH_THEME</span><span class="token operator">=</span><span class="token string">"powerlevel10k/powerlevel10k"</span>
<span class="token assign-left variable">ZSH_THEME</span><span class="token operator">=</span><span class="token string">"powerlevel10k/powerlevel10k"</span> 
ZSH_THEME="powerlevel10k/powerlevel10k"

重启bash即可进入其初始配置页面。最后下载并安装自动补全插件

<span class="token function">git</span> clone https://github.com/zsh-users/zsh-autosuggestions <span class="token variable">${ZSH_CUSTOM<span class="token operator">:-</span>~<span class="token operator">/</span>.oh-my-zsh<span class="token operator">/</span>custom}</span>/plugins/zsh-autosuggestions
<span class="token function">git</span> clone https://github.com/zsh-users/zsh-autosuggestions <span class="token variable">${ZSH_CUSTOM<span class="token operator">:-</span>~<span class="token operator">/</span>.oh-my-zsh<span class="token operator">/</span>custom}</span>/plugins/zsh-autosuggestions 
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

将~/.zshrc中的插件加上zsh-autosuggestions,成为

<span class="token assign-left variable">plugins</span><span class="token operator">=</span><span class="token punctuation">(</span> <span class="token function">git</span> zsh-autosuggestions <span class="token punctuation">)</span>
<span class="token assign-left variable">plugins</span><span class="token operator">=</span><span class="token punctuation">(</span> <span class="token function">git</span> zsh-autosuggestions <span class="token punctuation">)</span> 
plugins=( git zsh-autosuggestions )

最后表现如下
还支持在vscode里直接用ssh-remote连接进该镜像,十分好用。

原文链接:https://blog.csdn.net/weixin_46091531/article/details/126803933

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享