Docker等容器化技术出现之前,学习linux时,为了能用上linux,我们不是将本机安装成linux系统就是使用虚拟机来安装,为了临时地学习一下Linux采用本机安装有点得不偿失,使用虚拟机安装,步骤也有点繁琐,最大缺点就是太耗系统资源,一台普通的主机同时也开不了几个虚拟机,而且虚拟机启动系统也慢,有时候卡住关机也没有反应。现在容器化时代到来了,这些统统都不是问题,接下来本文将介绍采用容器化的方式来让我们安装体验各种操作系统。

首先我们要安装好Docker

如何安装Docker,请参考使用国内源安装docker/安装Docker时很慢很卡网络问题如何解决

使用Docker安装系统

  1. 使用Docker安装ubuntu系统

    jagitch@jagitch-MS-7B93:~$ docker pull ubuntu
    Using default tag: latest
    latest: Pulling from library/ubuntu
    Digest: sha256:3f85b7caad41a95462cf5b787d8a04604c8262cdcdf9a472b8c52ef83375fe15
    Status: Image is up to date for ubuntu:latest
    docker.io/library/ubuntu:latest
    
    jagitch@jagitch-MS-7B93:~$ docker run -it --name ubuntu-docker ubuntu /bin/bash
    root@b955989f38ef:/# uname -a
    Linux b955989f38ef 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
    
  2. 使用Docker安装centos系统

    jagitch@jagitch-MS-7B93:~$ docker pull centos
    Using default tag: latest
    latest: Pulling from library/centos
    Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
    Status: Image is up to date for centos:latest
    docker.io/library/centos:latest
    
    jagitch@jagitch-MS-7B93:~$ docker run -it --name my-centos centos /bin/bash
    [root@c5e58e4a827e /]# 
    
    [root@6fac00371e10 /]# cat /etc/centos-release
    CentOS Linux release 8.4.2105
    
  3. 使用Docker安装debian系统

    jagitch@jagitch-MS-7B93:~$ docker pull debian
    Using default tag: latest
    latest: Pulling from library/debian
    c6cf28de8a06: Pull complete 
    Digest: sha256:fac2c0fd33e88dfd3bc88a872cfb78dcb167e74af6162d31724df69e482f886c
    Status: Downloaded newer image for debian:latest
    docker.io/library/debian:latest
    
    jagitch@jagitch-MS-7B93:~$ docker run -it --name my-debian debian /bin/bash
    root@03abc7201067:/# cat /etc/issue.net
    Debian GNU/Linux 12
    

技巧补充:

  1. 如果想临时运行一个虚拟的操作系统,可以在docker run后面添加--rm参数,表示退出后就删除。

  2. 可以配置别名快速运行一个干净的操作系统,在学习linux命令时经常需要随时启动一个linux环境供我们实践操作。

    jagitch@jagitch-MS-7B93:~$ alias newubuntu='docker run -it --rm ubuntu /bin/bash'
    
    jagitch@jagitch-MS-7B93:~$ newubuntu
    root@e39d34caf957:/# cat /etc/issue.net
    Ubuntu 24.04 LTS
    root@e39d34caf957:/# 
    

    可以把别名配置到~/.bashrc等配置文件中,这样每次打开终端时都可以使用。
    每次需要一个ubuntu环境时就可以执行newubuntu命令,这样不到1秒中一个全新的ubuntu环境就准备好了

  3. 可以配置一个我们日常使用的操作系统,并且配置别名快速的进入到系统

    jagitch@jagitch-MS-7B93:~$ docker run -itd --name my-ubuntu ubuntu bash
    2fdca5d71232ab95cd3d4fa5d275a05585bf8a98a37eb0e214f904e066e3e78c
    jagitch@jagitch-MS-7B93:~$ alias goubuntu="docker start -ai my-ubuntu"
    jagitch@jagitch-MS-7B93:~$ goubuntu
    root@2fdca5d71232:/# ls
    bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
    boot  etc  lib   media  opt  root  sbin  sys  usr
    

    配置别名后,我们只需执行goubuntu即可进入到我们日常使用的docker中,退出后数据不会消失,而我们使用上一步骤的newubuntu开启一个新操作系统,退出后所有数据都会丢失(只适合临时使用,用后即销毁)

  4. 我们日常使用的操作系统容器如果不手动删除容器的话,数据会一直保存,但是当电脑损坏后可以会丢失,所以我们可以对我们日常使用的操作系统容器进行commit备份,备份后也可以复制到别的电脑上运行,非常方便迁移。

    具体参考如何对Docker容器进行备份和迁移

推荐阅读

1. 使用树梅派搭建Golang、Python、NodeJs的开发服务器
2. 如何将github开源项目发布

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐