Где объемы докеров на OSX? [Дубликат]

ES6 вводит переменные Let, которые возникают с block level scoping. До ES5 у нас не было block level scoping, поэтому переменные, объявленные внутри блока, всегда hoisted отображаются на уровне уровня функции.

В основном Scope ссылается на то, где в вашей программе ваши переменные видны, что определяет, где вам разрешено использовать объявленные вами переменные. В ES5 имеем global scope,function scope and try/catch scope, с ES6 мы также получаем оценку уровня блока, используя Let.

  • Когда вы определяете переменную с ключевым словом var, она известна всей функцией с момента ее определения.
  • Когда вы определяете переменную с выражением let, это только известный в блоке, который он определен.
     function doSomething(arr){
         //i is known here but undefined
         //j is not known here
    
         console.log(i);
         console.log(j);
    
         for(var i=0; i<arr.length; i++){
             //i is known here
         }
    
         //i is known here
         //j is not known here
    
         console.log(i);
         console.log(j);
    
         for(let j=0; j<arr.length; j++){
             //j is known here
         }
    
         //i is known here
         //j is not known here
    
         console.log(i);
         console.log(j);
     }
    
     doSomething(["Thalaivar", "Vinoth", "Kabali", "Dinesh"]);
    

Если вы запустите код, вы увидите, что переменная j известна только в loop, а не до и после. Тем не менее наша переменная i известна в entire function с момента ее определения вперед.

Существует еще одно большое преимущество использования let, поскольку оно создает новую лексическую среду, а также связывает свежую ценность, а не сохраняя старую ссылку.

for(var i=1; i<6; i++){
   setTimeout(function(){
      console.log(i);
   },1000)
}

for(let i=1; i<6; i++){
   setTimeout(function(){
      console.log(i);
   },1000)
}

Первый цикл for всегда печатает значение last , при этом let он создает новую область и связывает новые значения с нами 1, 2, 3, 4, 5.

Подойдя к constants, он работает в основном как let, единственное отличие в том, что их значение не может быть изменено. В константах допускается мутация, но переназначение не разрешено.

const foo = {};
foo.bar = 42;
console.log(foo.bar); //works

const name = []
name.push("Vinoth");
console.log(name); //works

const age = 100;
age = 20; //Throws Uncaught TypeError: Assignment to constant variable.

console.log(age);

Если константа относится к object, она всегда будет ссылаться на object, но сама object может быть изменена ( если он изменен). Если вам нравится иметь неизменяемый object, вы можете использовать Object.freeze([])

81
задан Rob Bednark 3 January 2017 в 05:05
поделиться

4 ответа

См. этот ответ

При использовании приложения Docker для Mac, похоже, что контейнеры хранятся в виртуальной машине, расположенной по адресу:

~ / Библиотека / Контейнеры / com.docker.docker / Данные / com.docker.driver.amd64-linux / Docker.qcow2

38
ответ дан Community 19 August 2018 в 14:31
поделиться

Я бы сказал, что файл:

/var/run/docker.sock

на самом деле у:

/Volumes/{DISKNAME}/var/run/docker.sock

Если вы запустите это, он должен это доказать, если ваш виртуальный бокс 5.2.8 или более поздняя версия, а ресурс для /Volumes настроен на автоматическую установку и постоянный И вы создали стандартную докер-машину в то время, когда на этой версии Virtualbox:

#!/bin/bash
docker run -d --restart unless-stopped -p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock portainer/portainer \
--no-auth

Затем, выберите Portainer по адресу: 192.168.99.100:9000 или localhost: 9000

0
ответ дан djangofan 19 August 2018 в 14:31
поделиться

Этот путь происходит от хоста Docker (а не от MacOS) до тех пор, пока «Docker for Mac Application» не существует, где находится виртуальная виртуальная машина VirtualBox «по умолчанию» и внутри этой виртуальной машины указанный путь существует (наверняка), теперь в «Docker for Mac» Приложение «раз есть изображение Docker.qcow2, которое представляет собой qemu base vm. Чтобы прыгать внутри этого пути VM @ mik-jagger в порядке (но есть еще несколько)

1
ответ дан itiic 19 August 2018 в 14:31
поделиться

Как упоминалось в приведенных выше ответах, вы найдете его в: screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

Как только вы запустите tty, вы можете перейти к /var/lib/docker

93
ответ дан Mik jagger 19 August 2018 в 14:31
поделиться
  • 1
    одна небольшая модификация (ниже вашего дома, а не ниже корня): «screen ~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty & quot; – pdenti 1 January 2017 в 19:12
  • 2
    должен быть принятым ответом. – Abdennour TOUMI 1 December 2017 в 11:51
  • 3
    Работает! Но как выйти из этой оболочки? Ctrl + d, exit и logout не будут работать. – thomaskonrad 30 March 2018 в 21:23
  • 4
    Вы можете отсоединиться от экрана с помощью ctrl + a + d – Mik jagger 2 April 2018 в 10:20
  • 5
    Отсоединение все равно будет удерживать сеанс экрана. Вы можете увидеть это, выполнив screen -ls. Если вы уже отсоединились, запустите screen -X quit. Если у вас несколько сеансов экрана, вам нужно -S указать имя сеанса. Если вы не отсоединились, нажмите ctrl + a,:, q, u, i, t, ENTER. Эти два просто запускают команду завершения экрана в сеансе. – dosentmatter 4 April 2018 в 09:09
  • 6
    – Richard Collette 3 August 2018 в 03:03
Другие вопросы по тегам:

Похожие вопросы: