Docker等容器化技术出现之前,学习linux时,为了能用上linux,我们不是将本机安装成linux系统就是使用虚拟机来安装,为了临时地学习一下Linux采用本机安装有点得不偿失,使用虚拟机安装,步骤也有点繁琐,最大缺点就是太耗系统资源,一台普通的主机同时也开不了几个虚拟机,而且虚拟机启动系统也慢,有时候卡住关机也没有反应。现在容器化时代到来了,这些统统都不是问题,接下来本文将介绍采用容器化的方式来让我们安装体验各种操作系统。
首先我们要安装好Docker
如何安装Docker,请参考使用国内源安装docker/安装Docker时很慢很卡网络问题如何解决
使用Docker安装系统
-
使用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
-
使用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
-
使用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
技巧补充:
-
如果想临时运行一个虚拟的操作系统,可以在docker run后面添加
--rm
参数,表示退出后就删除。 -
可以配置别名快速运行一个干净的操作系统,在学习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环境就准备好了 -
可以配置一个我们日常使用的操作系统,并且配置别名快速的进入到系统
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
开启一个新操作系统,退出后所有数据都会丢失(只适合临时使用,用后即销毁) -
我们日常使用的操作系统容器如果不手动删除容器的话,数据会一直保存,但是当电脑损坏后可以会丢失,所以我们可以对我们日常使用的操作系统容器进行
commit
备份,备份后也可以复制到别的电脑上运行,非常方便迁移。