Я бегу на контейнере или нет? - PullRequest
1 голос
/ 23 июня 2019

Некоторые поставщики облачных услуг предоставляют нам предварительно настроенные приложения.У меня есть CLI и я могу запустить команду.Я хочу знать, это контейнер или ОС (Ubuntu, Redhat, ...)? Если это контейнер, каково его базовое изображение?

Ответы [ 2 ]

3 голосов
/ 23 июня 2019

TLDR

Если вы находитесь внутри контейнера, вы увидите файл .dockerenv в корневом каталоге.(именно поэтому я подозреваю, что облачная оболочка Google будет одной).

, чтобы определить ОС, которую вы можете запустить cat /etc/os-relese;

РЕДАКТИРОВАТЬ

, если это контейнеркаково его базовое изображение?

кажется, что это зависит от поставщика облачных услуг от другого, поэтому вам придется каждый раз копать самостоятельно.

я только что сделал мой, вот результаты:

изучение базового изображения облака Google:

  • я сделал cat /etc/hostname, чтобы получить идентификатор контейнераи получил это:

    cs-6000-devshell-vm-41dc38ac-9af5-42e2-9ee5-b6f9d042decb
    

    , который может дать подсказку о каком-то источнике devshell image

  • , поэтому я пошел за Dockerfile: sudo find / -type f -name Dockerfile

, и один из результатов был:

/google/devshell/customimageskeleton/Dockerfile

, который выглядел вполне подходящим для меня.так что я cat /google/devshell/customimageskeleton/Dockerfile

и получил

FROM gcr.io/cloudshell-images/cloudshell:latest
# Add your content here
# To trigger a rebuild of your Cloud Shell image:
# 1. Commit your changes locally: git commit -a
# 2. Push your changes upstream: git push origin master
# This triggers a rebuild of your image hosted at GCR_REPO_URL.
# You can find the Cloud Source Repository hosting this file at CSR_FILE_URL

быстрое приближение к gcr.io/cloudshell-images/cloudshell:latest привело меня прямо к репозиторию изображений в облачном реестре Google

Как вы можете видеть, размер изображения довольно велик, поэтому я не могу его никуда вытащить, но если это вас беспокоит, вы можете

docker pull gcr.io/cloudshell-images/cloudshell:latest

, а затем

docker history --no-trunc gcr.io/cloudshell-images/cloudshell:latest

для просмотра базы Dockerfile.

надеюсь, что это может кому-то как-то помочь.

1 голос
/ 24 июня 2019

Все контейнеры, сертифицированные Jelastic, основаны на ОС Centos v.7, за исключением образа с Ubuntu VPS. Чтобы проверить версию ОС Linux, вам нужно выполнить команды:

Например:

для контейнеров на базе ОС Centos:

$ cat / etc / os-release

NAME = "CentOS Linux"

VERSION = "7 (Core)"

ID = "CentOS"

ID_LIKE = "rhel fedora"

version_id = "7"

PRETTY_NAME = "CentOS Linux 7 (Core)"

ANSI_COLOR = "0; 31"

CPE_NAME = "CPE: / O: CentOS: CentOS: 7"

HOME_URL = "https://www.centos.org/"

BUG_REPORT_URL = "https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT = "CentOS-7"

CENTOS_MANTISBT_PROJECT_VERSION = "7"

REDHAT_SUPPORT_PRODUCT = "CentOS"

REDHAT_SUPPORT_PRODUCT_VERSION = "7"


для контейнеров на основе ОС Debian:

# cat / etc / os-release

* * Тысяча сорок-девять NAME = "Ubuntu"

VERSION = "18.04.2 LTS (Bionic Beaver)"

J = убунт * 1 054 *

ID_LIKE = Debian

PRETTY_NAME = "Ubuntu 18.04.2 LTS"

version_id = "18,04"

HOME_URL = "https://www.ubuntu.com/"

SUPPORT_URL = "https://help.ubuntu.com/"

BUG_REPORT_URL = "https://bugs.launchpad.net/ubuntu/"

PRIVACY_POLICY_URL = "https://www.ubuntu.com/legal/terms-and-policies/privacy- политика "

VERSION_CODENAME = бионический

UBUNTU_CODENAME = бионический

# lsb_release -a

Модули LSB недоступны.

ID распространителя: Ubuntu

Описание: Ubuntu 18.04.2 LTS

Release: 18,04

Codename: бионический

...