Is it possible to connect to a Linux Docker engine running in a Linux VMWare virtual machine, running on Windows 10? I need VMWare for other tasks... which means I need to disable Hyper-V (which Docker requires). The configuration would be as follows:
Windows 10 Enterprise ... running VMWare Workstation Pro v12
Ubuntu 16.04.2 ... as a guest OS in VMWare
Shared Folders running in VMWare sharing C:\Source
Ubuntu VM mounting C:\Source (as /media/source probably)
Docker Engine running within Ubuntu VM
Docker container with Volume mounted at /media/source
coding locally in C:\Source (using Sublime, Atom, whatever)
changes being picked up by Docker container (via nodemon)
Yes and no.
Can this be done? Yes.
Can this be done with VMWare? I wouldn't with VMWare.
VMWare has issues dealing with Shared Folders on Windows 10. The company behind VMWare switched HGFS drivers and there were problems as late as December 2016, which is when I finally gave up.
Now, if you are willing to do this with VirtualBox, then it works flawlessly:
flackey#devvms01: ~
$ ls
Backup Source
Here's what I currently do...
Disable Hyper-V in Windows 10;
Install VirtualBox & VirtualBox Extensions (link);
Create the Ubuntu VM;
Before starting the VM, add the "Shared Folders" paths you need (see above);
Install Ubuntu;
Install virtualbox-guest-dkms;
Add your user to the vboxsf group: sudo adduser $USER vboxsf; and,
Create the mount point(s).
The commands would be:
sudo apt-get install virtualbox-guest-dkms
sudo reboot now
sudo adduser $USER vboxsf
mkdir ~/Source
sudo mount -t vboxsf Source ~/Source
mkdir ~/Backup
sudo mount -t vboxsf Backup ~/Backup
Note: You probably don't need to reboot. I'm just anal like that.
After that, it works exactly as you described above. You will be working in C:\Source directly in Windows 10. The VM and Docker will function as if the files are local to the VM's file system.
Related
I release ARM binaries of my software, by running the compiler toolchain on an emulated ARM machine.
Linux can run foreign binaries by registering qemu-user-static in /proc/sys/fs/binfmt_misc/. This allows you to run an ARM32 or ARM64 Docker image on an x86_64 Docker host, as follows:
Preparation:
# Apply `binfmt_misc` changes on host OS
docker run --rm --privileged multiarch/qemu-user-static:register --reset
Dockerfile:
# Get x86_64 qemu-user-static binaries
FROM debian:buster
RUN apt-get update && apt-get install -qqy qemu-user-static
# Get cross-arch rootfs
FROM arm64v8/golang:latest
COPY --from=0 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
This works great on Docker for Linux.
It also works great on Docker for Windows when using Linux Containers (MobyLinuxVM)
It doesn't work when using Docker for Windows when using Windows Containers (LCOW / hcsdiag mode). I want to use this mode because it can run both Linux and Windows containers. But it's not possible to modify the binfmt_misc file via the --privileged flag:
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: Windows does not support privileged mode.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
Current (1803-era) versions of Hyper-V HCS run a real Linux kernel, not a WSL one. I guess it should be possible to modify the host's binfmt_misc directory.
How is it possible to run a Linux/ARM container image on a Windows/x86_64 Docker host running LCOW?
Is it possible to modify the Linux host image used by LCOW?
Is there any other way to get a unified docker daemon that is capable of running Windows/x86_64, Linux/x86_64 and Linux/ARM Docker images?
I'm developing on OSX using Docker Machine. I used the quickstart terminal to let it create the default VM which is extremely minimal:
In an OS X installation, the docker daemon is running inside a Linux VM called default. The default is a lightweight Linux VM made specifically to run the Docker daemon on Mac OS X. The VM runs completely from RAM, is a small ~24MB download, and boots in approximately 5s.
I want to install dnsmasq, but none of these instructions could work. I expect to come across this kind of problem again, so beyond installing dnsmasq I want to have some tool such as apt-get to be able to easily install things. With so few commands available I don't know how to get started. I have curl, wget, sh, git, and other very basic commands. I don't have any of the following:
apt
apt-get
deb
pkg
pkg_add
yum
make
gcc
g++
python
bash
What can I do? Should I just download a more complete VM such as Ubuntu? My laptop is not very fast so a very lightweight VM was very appealing to me, but this is starting to seem like a bit much.
The docker-machine VM is based on TinyCore. To install extra packages use tce or tce-load, the apt-get counterpart of TinyCore.
A word of warning, you shouldn't treat the docker-machine VM as a regular VM where you install tons of packages and customize. It's only meant to run containers. It's best to keep it that way.
I used GitBlit on windows but I purchased a Synology NAS.
http://gitblit.com (An open source "GitHub like" server)
The NAS works with a custom distribution of linux.
I installed the ubuntu version of GitBlit It works great.
But I can't install the GitBlit service. I would like to start the server at startup.
But I try to launch the install-service-ubuntu.sh but there is no update.rc file on this Linux distribution.
#!/bin/bash
sudo cp service-ubuntu.sh /etc/init.d/gitblit
sudo update-rc.d gitblit defaults
So I would like to install the service manually but don't know the Linux system.
Thanks.
I have a development server which installed ubuntu and I just have normal permission in this server. I want to share a folder with Windows to store the code and compile the code in this server but edit them in Windows. How can I achieve this without root permission?
PS. it seems that samba is installed in that server
In case you have an SSH server running on ubuntu, you can try installing e.g. MobaXTerm in windows and access ubuntu via ssh. If it works, you'll be able to use scp to transfer data efficiently!
Another option is to use rsync in combination with ssh, which can be used from linux without root permission. However, you may have to adjust windows permissions, then.
Best solution, however, is using a version control system as #Filburt mentioned in a comment above.
sudo apt-get install samba libpam-smbpass
sudo service smbd restart
sudo gedit /etc/samba/smb.conf and change the workgroup name -> workgroup = WORKGROUP
sudo service smbd restart
sudo apt-get install winbind
sudo gedit /etc/nsswitch.conf add hosts: files mdns4_minimal [NOTFOUND=return] wins dns mdns4
sudo /etc/init.d/networking restart
Primary Content Reference:
"http://www.windowsazure.com/en-us/documentation/articles/store-mongodb-virtual-machines-linux-install-centos/"
Beginner at linux cmd and MongoDB on Virtual Machines here.
The Tutorial: Install MongoDB on a virtual machine running CentOS Linux in Windows Azure
Is an easy follow until you reach
The Section: Install and run MongoDB on the virtual machine
As someone use to using a x64 Win8 OS I am completely lost on how I am suppose to bypass the permission denial that won't allow me to touch 10gen.repo or sudo yum install mongo-10gen mongo-10gen-server. Can someone please respond with a ELI5 format?
Related Resources:
"https://unix.stackexchange.com/questions/104916/how-do-you-configure-package-management-system-yum-for-mongodb"
You need to create the repository file with sudo as well.
Try this:
$ echo "[MongoDB]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1" | sudo tee -a /etc/yum.repos.d/10gen.repo
$ sudo yum update
And then:
sudo yum install mongo-10gen mongo-10gen-server
Hope it helps