### Summary

The facts for ansible_virtualization_type and ansible_virtualization_role are wrong if run in a dockercontainer of centos (tested with 8), alpine or debian (tested with buster). Only in an ubuntu-container (tested with focal or hirsute) are the values correct.
The problem can be reproduced with the latest stable version and the devel branch.

### Issue Type

Bug Report

### Component Name

setup, virtual/linux.py

### Ansible Version

```console
$ ansible --version
ansible 2.10.8
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/jfader/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.9/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.9.3 (default, Apr  8 2021, 23:35:02) [GCC 10.2.0]
```


### Configuration

```console
$ ansible-config dump --only-changed

no changes recorded
```


### OS / Environment

Archlinux

### Steps to Reproduce

Start up two containers. One with centos:8 and one with ubuntu:hirsute:
```bash
docker run --name centos_8 -it centos:8 /bin/bash
dnf -y install python3
```
```bash
docker run --name ubuntu_hirsute -it ubuntu:hirsute /bin/bash
apt-get update && apt-get install -y python3
```
Inventory:
```
ubuntu_hirsute ansible_connection=docker
centos_8 ansible_connection=docker
```

Playbook:
```yaml
---
- hosts: centos_8,ubuntu_hirsute
  gather_facts: True
  tasks:

    - name: "output information about virtualization (type and role)"
      debug:
        var: "{{ item }}"
      loop:
        - ansible_virtualization_type
        - ansible_virtualization_role
```

### Expected Results
```console
TASK [output information about virtualization (type and role)] ************************************************
ok: [centos_8] => (item=ansible_virtualization_type) => {
    "ansible_loop_var": "item",
    "ansible_virtualization_type": "docker",
    "item": "ansible_virtualization_type"
}
ok: [ubuntu_hirsute] => (item=ansible_virtualization_type) => {
    "ansible_loop_var": "item",
    "ansible_virtualization_type": "docker",
    "item": "ansible_virtualization_type"
}
ok: [centos_8] => (item=ansible_virtualization_role) => {
    "ansible_loop_var": "item",
    "ansible_virtualization_role": "guest",
    "item": "ansible_virtualization_role"
}
ok: [ubuntu_hirsute] => (item=ansible_virtualization_role) => {
    "ansible_loop_var": "item",
    "ansible_virtualization_role": "guest",
    "item": "ansible_virtualization_role"
}
```
### Actual Results

```console
TASK [output information about virtualization (type and role)] ************************************************
ok: [centos_8] => (item=ansible_virtualization_type) => {
    "ansible_loop_var": "item",
    "ansible_virtualization_type": "NA",
    "item": "ansible_virtualization_type"
}
ok: [ubuntu_hirsute] => (item=ansible_virtualization_type) => {
    "ansible_loop_var": "item",
    "ansible_virtualization_type": "docker",
    "item": "ansible_virtualization_type"
}
ok: [centos_8] => (item=ansible_virtualization_role) => {
    "ansible_loop_var": "item",
    "ansible_virtualization_role": "NA",
    "item": "ansible_virtualization_role"
}
ok: [ubuntu_hirsute] => (item=ansible_virtualization_role) => {
    "ansible_loop_var": "item",
    "ansible_virtualization_role": "guest",
    "item": "ansible_virtualization_role"
}
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
virtual_facts['virtualization_type'] = 'container'
                        virtual_facts['virtualization_role'] = 'guest'
                        found_virt = True
        if os.path.exists('/proc/vz') and not os.path.exists('/proc/lve'):
            virtual_facts['virtualization_type'] = 'openvz'
            if os.path.exists('/proc/bc'):
                host_tech.add('openvz')
                if not found_virt:
                    virtual_facts['virtualization_role'] = 'host'
            else:
                guest_tech.add('openvz')
                if not found_virt:
                    virtual_facts['virtualization_role'] = 'guest'
            found_virt = True
        systemd_container = get_file_content('/run/systemd/container')
        if systemd_container:
            guest_tech.add(systemd_container)
            if not found_virt:
                virtual_facts['virtualization_type'] = systemd_container
                virtual_facts['virtualization_role'] = 'guest'
                found_virt = True
        
        if guest_tech.intersection(set(['docker', 'lxc', 'podman', 'openvz', 'containerd'])) or systemd_container:
            guest_tech.add('container')
        if os.path.exists("/proc/xen"):
            is_xen_host = False
            try:
                for line in get_file_lines('/proc/xen/capabilities'):
                    if "control_d" in line:
                        is_xen_host = True