VMware Workstation Player

VMware Workstation Player (ранее VMware Player) — бесплатный для некоммерческого использования программный продукт, на основе виртуальной машины VMware Workstation, но с ограниченной функциональностью, предназначенный для запуска образов виртуальных машин, созданных в других продуктах VMware, а также в Microsoft VirtualPC и Symantec LiveState Recovery. Начиная с версии 3.0 VMware Player позволяет также создавать образы виртуальных машин. Ограничение функциональности теперь касается в основном функций, предназначенных для IT-специалистов и разработчиков ПО. Например, отсутствует возможность тонкого настраивания виртуальных сетевых адаптеров через Virtual Network Editor.

Лицензированная версия VMware Player называется VMware Player Plus. После ввода лицензионного ключа появляется возможность использовать дополнительные функции, такие как поддержка виртуальных машин с ограниченным доступом, массовое развертывание, официальная поддержка разработчика.

Ссылка на ресурс: https://customerconnect.vmware.com/en/downloads/search?query=vmware%20workstation%20player

Проброс портов от хоста к VMWare Player

Когда ваша VMWare Player работает под NAT и вам нужен доступ извне хоста к определенному порту VMWare, вы можете настроить проброс портов, отредактировав файл:

C:\ProgramData\VMware\vmnetnat.conf

В разделе incomingtcp нужно прописать строчки:

# Пример
# <порт_хоста> = <ip_гостя>:<порт_гостя>
3401 = 192.168.200.135:3389

Затем перезапустите службу VMWare NAT:

net stop "VMWare NAT Service"
net start "VMWare NAT Service"

Источники:

Полезные команды Docker

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

Образ — исполняемый пакет, который содержит всё необходимое для запуска приложения: код, среду выполнения, библиотеки, переменные среды и конфигурационные файлы.

Контейнер создаётся из образа. Это то, чем становится образ во время исполнения (иными словами, образом с состоянием или пользовательским процессом).

Чтобы просмотреть список запущенных контейнеров необходимо ввести команду docker ps (прямо как в Linux).

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

  1. docker ps  — показывает список запущенных контейнеров. Некоторые из полезных флагов:
    • -a / --all — список всех контейнеров (по умолчанию показывает только запущенные);
    • -q / --quiet — перечислить только id контейнеров (полезно, когда вам нужны все контейнеры).
  2. docker pull  —  большинство образов создаётся на основе базового образа из Docker Hub. Docker Hub содержит множество готовых образов, которые можно использовать вместо того, чтобы создавать и настраивать свой собственный. Чтобы скачать определённый образ или набор образов (репозиторий), используйте команду docker pull.
  3. docker build  —  эта команда собирает образ Docker из Dockerfile и «контекста». Контекст сборки — это набор файлов, расположенных по определённому пути или URL. Используйте флаг -t, чтобы задать имя образа. Например, команда docker build -t my_container . соберёт образ, используя текущую директорию, на что указывает точка в конце.
  4. docker run  —  запускает контейнер, на основе указанного образа. Эту команду можно дополнять другими, например, docker run my_image -it bash запустит контейнер, а затем запустит в нём bash.
  5. docker logs  —  эта команда используется для просмотра логов указанного контейнера. Можно использовать флаг --follow, чтобы следить за логами работающей программы: docker logs --follow my_container.
  6. docker volume ls  —  показывает список томов, которые являются предпочитаемым механизмом для сохранения данных, генерируемых и используемых контейнерами Docker.
  7. docker rm  —  удаляет один и более контейнеров, например, docker rm my_container.
  8. docker rmi  —  удаляет один и более образов, например, docker rmi my_image.
  9. docker stop  —  останавливает один и более контейнеров. Команда docker stop my_container остановит один контейнер, а docker stop $(docker ps -a -q) — все запущенные. Более грубый способ — использовать docker kill my_container, который не пытается сначала аккуратно завершить процесс.
  10. Можно комбинировать эти команды. Например, для очистки всех контейнеров и образов:
    • Останавливаем все запущенные контейнеры docker stop $(docker ps -q).
    • Удаляем все остановленные контейнеры docker rm $(docker ps -a -q).
    • Удаляем все образы docker rmi $(docker images -q).

Весь список команд можно почитать в документации.

Ознакомительная виртуальная машина Windows 10 для разработчиков

Вы можете быстро приступить к созданию приложений Windows, используя виртуальную машину с последними версиями Windows, инструментами разработчика, пакетами SDK и готовыми к использованию примерами.

В эту ознакомительную виртуальную машину включены:

  • Windows 10;

  • пакет SDK для Windows 10;

  • Visual Studio 2019 с UWP, классическими приложениями .NET и рабочими процессами Azure, а также с расширением Windows Template Studio;

  • Visual Studio Code;

  • Включена подсистема Windows для Linux с установленной Ubuntu;

  • Включенный режим разработчика.

Ссылка на загрузку — https://developer.microsoft.com/ru-ru/windows/downloads/virtual-machines/

Запуск Hashicorp Vault в Docker Compose

docker-compose.yml

version: '3.9'

services:

  vault:
    image: vault:1.9.4
    container_name: vault
    volumes:
      - ./config:/vault/config
      - ./policies:/vault/policies
      - ./data:/vault/data
    ports:
      - 8200:8200
    environment:
      - VAULT_ADDR=http://0.0.0.0:8200
      - VAULT_API_ADDR=http://0.0.0.0:8200
      - VAULT_ADDRESS=http://0.0.0.0:8200
    cap_add:
      - IPC_LOCK
    command: vault server -config=/vault/config/vault.json
    
  vault-ui:
    image: djenriquez/vault-ui:2.3.0
    container_name: vault-ui
    ports:
      - 8000:8000
    environment:
      - 'VAULT_URL_DEFAULT=http://vault:8200'
      - VAULT_AUTH_DEFAULT=GITHUB

Файл располагается в корневом каталоге.

Файл vault.json:

{                                    
  "listener":  {                     
    "tcp":  {                        
      "address":  "0.0.0.0:8200",  
      "tls_disable":  "true"         
    }                                
  },                                 
  "backend": {                       
    "file": {                        
      "path": "/vault/file"          
    }                                
  },                                 
  "default_lease_ttl": "168h",       
  "max_lease_ttl": "0h",
  "api_addr": "http://0.0.0.0:8200"
}

Выполнить сборку контейнера и запустить можно при помощи команды:

docker-compose up --build -d

Запуск Jenkins в Docker Compose

docker-compose.yml

version: '3'
services:
  jenkins:
    image: jenkins:2.60.3
    container_name: jenkins
    # uncomment for docker in docker
    # run http://localhost:8080/restart (An error occurred during installation: No such plugin: cloudbees-folder)
    privileged: true
    user: root
    volumes:
        # enable persistent volume (warning: make sure that the local jenkins_home folder is created)
        - ./jenkins_home:/var/jenkins_home
        # mount docker sock and binary for docker in docker (only works on linux)
        - ./var/run/docker.sock:/var/run/docker.sock
        - ./usr/bin/docker:/usr/bin/docker
    ports:
      - 8113:8080

Файл располагается в корневом каталоге.

Выполнить сборку контейнера и запустить можно при помощи команды:

docker-compose up --build -d

Запуск Golang в Docker Compose

docker-compose.yml

version: '3.9'

services:

  golang:
    build: ./build
    container_name: golang
    restart: always
    # stdin_open: true # docker run -i
    tty: true        # docker run -t
    volumes:
      - ./build/source:/go/tmp/src

Файл располагается в корневом каталоге.

Dockerfile

# Базовый образ
FROM golang:1.14.4-buster
# Папка приложения
ARG APP_DIR=app
# Копирование файлов
COPY . /go/tmp/src/${APP_NAME}
# Рабочая директория
WORKDIR /go/tmp/src/${APP_NAME}
# Библиотеки
# RUN go get <путь_к_библиотеке>
# RUN go get github.com/streadway/amqp

Файл располагается в ./build

hello.go

package main

func main() {
	println("Hello, World!")
}

Файл располагается в ./ServiceGo/source

Выполнить сборку контейнера и запустить можно при помощи команды:

docker-compose up --build -d

Отформатировать файл:

docker-compose exec golang gofmt hello.go

Запустить приложение:

docker-compose exec golang go run hello.go

Запуск PostgreSQL 9 в Docker Compose

docker-compose.yml

version: '3'
services:
  postgres:
    build: ./build
    container_name: postgres
    restart: always
    volumes:
        - ./data:/var/lib/postgresql/data
    environment:
        - "POSTGRES_USER=any_user"
        - "POSTGRES_PASSWORD=any_password"
        - "POSTGRES_DB=any_dev_db"
    ports:
        - "54321:5432"

Файл располагается в корневом каталоге.

Dockerfile

FROM postgres:9.6-alpine

Файл располагается в ./build

Выполнить сборку контейнера и запустить можно при помощи команды:

docker-compose up --build -d

Автозапуск виртуальной машины VirtualBox в фоновом режиме на Windows 10

Необходимо для выполнения пунктов

  • Установленная и настроенная программа VirtualBox
  • Созданная, настроенная и остановленная виртуальная машина VirtualBox

Шаг 1. Перейти в автозагрузку Windows 10

Путь к папке автозагрузки текущего пользователя в Windows 10:

%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Вы можете открыть папку автозагрузки текущего пользователя через проводник Windows, командную строку или щелкнув правой кнопкой мыши Пуск > Выполнить:

shell:startup

Путь к папке автозагрузки всех пользователей в Windows 10:

%allusersprofile%\Microsoft\Windows\Start Menu\Programs\StartUp

Вы можете открыть папку автозагрузки всех пользователей через проводник Windows, командную строку или щелкнув правой кнопкой мыши Пуск > Выполнить:

shell:common startup

Обратите внимание, что если вы используете проводник Windows для доступа к папке Автозагрузка, папка APPDATA «скрыта», вам придется включить скрытые файлы, чтобы ее увидеть. Если вы вводите путь к папке в командной строке CMD или в сценарии, скрытая папка APPDATA не будет проблемой.

Шаг 2. Создать файл в автозагрузке

В автозагрузке создаем файл с наименованием <имя_файла>.bat (напр. Debian-10.5.0-Netinst-Terminal.bat). В нем прописываем команду:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm <имя_виртуальной_машины> --type headless

Например:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "Debian-10.5.0-Netinst (Terminal)" --type headless

Скрипт проверен на VirtualBox версии 6.1.16.

Перезагружаем Windows 10, чтобы проверить результат.

Запуск Elasticsearch и Kibana в Docker Compose

docker-compose.yml

version: '3.9'

services:

  elasticsearch:
    build: ./build-elasticsearch
    container_name: elasticsearch
    restart: always
    environment:
      - "discovery.type=single-node"
    ports:
      - "9200:9200"
    networks:
      - es01

  kibana:
    build: ./build-kibana
    container_name: kibana
    restart: always
    environment:
      - SERVER_NAME=kibana
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200/
    links:
      - "elasticsearch"
    ports:
      - "5601:5601"
    networks:
      - es01

networks:
  es01:

Файл располагается в корневом каталоге.

Dockerfile для Elasticsearch

FROM docker.elastic.co/elasticsearch/elasticsearch:7.8.0

Файл располагается в ./build-elasticsearch.

Dockerfile для Kibana

FROM docker.elastic.co/kibana/kibana:7.8.0

Файл располагается в ./build-kibana.

Подробнее можно почитать на официальных страницах:

Выполнить сборку контейнера и запустить можно при помощи команды:

docker-compose up --build -d