Since all Linux distributions run the same (yup, it’s a bit simplified) Linux kernel and differ only in userland software, it’s pretty easy to simulate a different distribution environment – by just installing that userland software and pretending it’s another distribution. Being specific, installing CentOS container inside Ubuntu OS will mean that you will get the userland from CentOS, while still running the same kernel, not even another kernel instance.
So lightweight virtualization is like having isolated compartments within same OS. Au contraire real virtualization is having another full-fledged OS inside host OS. That’s why docker cannot run FreeBSD or Windows inside Linux.
If that would be easier, you can think docker is kind of very sophisticated and advanced chroot environment.
Related Posts:
- Cannot connect to the Docker daemon at unix:/var/run/docker.sock. Is the docker daemon running?
- Docker can’t connect to docker daemon
- Why does “docker attach” hang?
- What does Virtual memory size in top mean?
- How to handle security updates within Docker containers?
- Is it possible to make Nginx listen to different ports?
- Why is TCP accept() performance so bad under Xen?
- How do I grep recursively?
- Why do you need to put #!/bin/bash at the beginning of a script file?
- error: ‘Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)’ — Missing /var/run/mysqld/mysqld.sock
- “E: Unable to locate package python-pip” on Ubuntu 18.04 [duplicate]
- -bash: syntax error near unexpected token `newline’ for display command
- How do I use grep to search the current directory for all files having the a string “hello” yet display only .h and .cc files?
- SSH using python script
- Changing the resolution of a VNC session in linux
- Building HelloWorld C++ Program in Linux with ncurses
- How does “cat << EOF" work in bash?
- Pseudo-terminal will not be allocated because stdin is not a terminal
- tar removing leading ‘/’ from member names
- X11 forwarding request failed on channel 0
- What is difference between arm64 and armhf?
- Opening a .tar.gz file with a single command
- How to make and apply SVN patch?
- How to download a file from server using SSH?
- standard_init_linux.go:178: exec user process caused “exec format error”
- connect to host localhost port 22: Connection refused
- Implementing shell in C and need help handling input/output redirection
- How to count lines in a document?
- What does `set -x` do?
- Can you Run Xcode in Linux?
- How to get the process ID to kill a nohup process?
- Writing a simple shell in C using fork/execvp
- Implementation of multiple pipes in C
- chmod: changing permissions of ‘my_script.sh’: Operation not permitted
- Using ls to list directories and their total sizes
- tar: add all files and directories in current directory INCLUDING .svn and so on
- What does set -e mean in a bash script?
- Gedit command not working in kali linux terminal
- Syntax error near unexpected token ‘then’
- Curl : connection refused
- make -j 8 g++: internal compiler error: Killed (program cc1plus)
- Bash export command
- How to edit gitignore file
- Pipe to/from the clipboard in a Bash script
- what does -zxvf mean in tar -zxvf filename?
- Retrieve last 100 lines logs
- Linux Bash: Move multiple different files into same directory
- Configuring Apache for localhost
- how to search for a directory from the terminal in ubuntu
- Android – Command not found
- How to use dos2unix?
- EC2 ssh Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
- How to add a default include path for GCC in Linux?
- What does ‘bash -c’ do?
- How do I know the script file name in a Bash script?
- WordPress can’t find temporary folder, but folder it’s looking at has correct permissions
- How to configure both webserver and appserver for WordPress CMS?
- How to remove all plugins, posts, pages, and inactive themes in one line with wp-cli? WordPress bloatware removal
- Communcation with wordrpess and linux server [closed]
- What permissions should my website files/folders have on a Linux webserver?
- Why is my crontab not working, and how can I troubleshoot it?
- Can I automatically add a new host to known_hosts?
- Why is “chmod -R 777 /” destructive?
- How can I run Debian stable but install some packages from testing?
- Environment variables of a running process on Unix?
- How to check if a library is installed?
- Meaning of the buffers/cache line in the output of free
- Is it normal to get hundreds of break-in attempts per day?
- How to cd into a directory with this name “-2” (starting with the hyphen)?
- how to disable SSH login with password for some users?
- How do I prevent accidental rm -rf /*?
- Is it possible to detach a process from its terminal? (Or, “I should have used screen!”) [duplicate]
- What’s the best way to check if a volume is mounted in a Bash script?
- How do I find the UUID of a filesystem
- Find out symbolic link target via command line
- Meaning of directories on Unix and Unix like systems
- How can I port forward with iptables?
- how do you create an ssh key for another user?
- REJECT vs DROP when using iptables
- Linux command line best practices and tips?
- How to run command as user who has /usr/sbin/nologin as Shell?
- How to get pid of just started process
- What range of MAC addresses can I safely use for my virtual machines?
- How to disable everything in crontab -l?
- df says disk is full, but it is not
- Perform rsync while following sym links
- What is the maximum port number?
- Show all users and their groups/vice versa
- Caching/preloading files on Linux into RAM
- How to sort ps output by process start time?
- What’s wrong with always being root?
- Is there a proper way to clear logs?
- Hundreds of failed ssh logins
- Transfer 15TB of tiny files
- What should I do when I got the KEYEXPIRED error message after an apt-get update?
- protocol version mismatch — is your shell clean?
- How do I join two named pipes into single input stream in linux
- How should an IT department choose a standard Linux distribution?
- Command line program to test DHCP service
- Service start request repeated too quickly, refusing to start limit