使用Docker安装完整Ubuntu容器

文章目录


步骤

  1. pull镜像 docker pull ubuntu --> image-id
  2. 使用上述镜像启动容器,名为xxx,后面要用到这个容器 docker run -it --name xxx image-id,替换xxximage-id
  3. 现在应该进入终端了,实际就是容器的/bin/bash了。这里需要如下操作
    • 更换源,清华源在此,记得选版本以及将https更换为http,因为没有编辑器,需要echo -e 'xxx\nxxx\n' > /etc/apt/sources.list
    • apt update,然后执行unminize,这个脚本是内置的,即所谓不最小化-正常化
    • 安装一些其他软件如openssh-server, net-tools, inetutils-ping,apt双击tab没有提示的问题我也没有解决
    • 然后改时区, 加高亮,改ssh的root登录,非必须操作了
      echo -e "TZ='Asia/Shanghai'\nexport TZ" >> ~/.bashrc && source ~/.bashrc && date
      echo "PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '" >> ~/.bashrc && source ~/.bashrc
      vi /etc/ssh/sshd_config # PermitRootLogin yes
      
  4. 上面的容器因为初始命令entrypoint是/bin/bash,所以没法自动启动服务如ssh,所以提交镜像,然后以/sbin/init启动新容器(似乎未unminize时没有/sbin/init,什么原因不清楚),命令如下,注意 -itd(后台执行,交互式终端), --privileged(有特权的) 以及 /sbin/init 都是必须的。
    sudo docker commit -m 'why i commit' container-name new-image-name
    sudo docker run -itd --privileged --name yyy -p hostporot:containerport new-image-id /sbin/init
    
    可以映射几个常用端口如22, 80, 8080到主机,以备不时之需
  5. 然后通过sudo docker exec -it yyy bash就可以进入终端了,查看一下ipifconfig,当然如果安装了ssh并且改了root登录权限也可以ssh root@containerip,映射22端口了也可以ssh -p port root@hostip

以上,欢迎指正

你可能感兴趣的:(Linux,容器)