remove machine compose all ubuntu docker virtualbox docker-compose docker-machine

ubuntu - compose - docker-machine ip



Docker Machine+Docker Compose+Volumes en Ubuntu (3)

Desafortunadamente, su apuesta más segura (y más compatible) será reconstruir la imagen y volver a desplegar el contenedor para cada cambio que realice (es decir, docker-compose build && docker-compose up -d o similar). Esto tiene la gran ventaja de trabajar también contra los demonios remotos Docker (que a medida que explora las características de la docker-machine puede ser más tentador ya que son muy fáciles de usar).

Así que he estado usando Docker-Compose en desarrollo durante un tiempo en mi máquina host Ubuntu 14.04 LTS con un proveedor local de VirtualBox (boot2docker en su interior).

Hace poco decidí probar la ventana acoplable (debido a la integración con Pycharm), pero me estoy topando con algunos problemas, por ejemplo, cuando guardo un nuevo código, el contenedor de la ventana acoplable no se actualiza automáticamente y creo que es porque comenté Mis volúmenes en mi servicio web docker-compose.yml , pero si no lo hago, obtendré un error manage.py not found por lo que entendí que debo comentarlo en su lugar.

He estado leyendo muchas cosas en Internet y me gustaría saber si existe un enfoque bueno y sencillo para hacer que la máquina acopladora funcione bien con la ventana acoplable en Ubuntu.

DockerFile

FROM ubuntu:14.04.3 ENV PYTHONUNBUFFERED 1 RUN apt-get update && apt-get install -y / build-essential / git-core / python2.7 / python-pip / python-dev / libpq-dev / postgresql-client-9.3 / libjpeg-dev / binutils / libproj-dev / gdal-bin RUN mkdir /vagrant WORKDIR /vagrant RUN mkdir requirements COPY requirements requirements RUN pip install -r requirements/local.txt COPY . /vagrant/

docker-compose.yml

postgis: image: mdillon/postgis:9.3 ports: - "5432:5432" environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: "postgres" # volumes: # - /etc/postgresql # - /var/log/postgresql # - /var/lib/postgresql web: build: . dockerfile: Dockerfile command: python manage.py runserver 0.0.0.0:8000 --settings=xxx.settings.local # https://stackoverflow.com/a/31567743/977622 # volumes: # - .:/vagrant ports: - "8000:8000" links: - "postgis:postgis"

ACTUALIZAR:

cuando ejecuto el comando mount dentro de mi vm me sale:

tmpfs on / type tmpfs (rw,relatime,size=918096k) proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,relatime) devpts on /dev/pts type devpts (rw,relatime,mode=600,ptmxmode=000) tmpfs on /dev/shm type tmpfs (rw,relatime) fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime) /dev/sda1 on /mnt/sda1 type ext4 (rw,relatime,data=ordered) cgroup on /sys/fs/cgroup type tmpfs (rw,relatime,mode=755) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,relatime,cpuset) cgroup on /sys/fs/cgroup/cpu type cgroup (rw,relatime,cpu) cgroup on /sys/fs/cgroup/cpuacct type cgroup (rw,relatime,cpuacct) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,relatime,blkio) cgroup on /sys/fs/cgroup/memory type cgroup (rw,relatime,memory) cgroup on /sys/fs/cgroup/devices type cgroup (rw,relatime,devices) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,relatime,freezer) cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,relatime,net_cls) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,relatime,perf_event) cgroup on /sys/fs/cgroup/net_prio type cgroup (rw,relatime,net_prio) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,relatime,hugetlb) /dev/sda1 on /mnt/sda1/var/lib/docker/aufs type ext4 (rw,relatime,data=ordered) none on /mnt/sda1/var/lib/docker/aufs/mnt/137fb1ad9a432a3f4fa47667ecc9991c10149b71f02dfc06a8134fc348532a3d type aufs (rw,relatime,si=462e07a762a4065f,dio,dirperm1) shm on /mnt/sda1/var/lib/docker/containers/137fb1ad9a432a3f4fa47667ecc9991c10149b71f02dfc06a8134fc348532a3d/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k) mqueue on /mnt/sda1/var/lib/docker/containers/137fb1ad9a432a3f4fa47667ecc9991c10149b71f02dfc06a8134fc348532a3d/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime) nsfs on /var/run/docker/netns/2e4dbeed7a66 type nsfs (rw)

Mis carpetas compartidas dicen en la interfaz de usuario que la ruta de la carpeta es /home


El comentario de @ShyShinn / respuestas de @tianon responden a la pregunta que creo.

Sin embargo, si está ejecutando un host de Ubuntu, puede intentar ejecutarlo solo en una máquina virtual. En estos días, puede ejecutar contenedores docker como no root a través del --userns-remap , por lo que puede estar un poco menos preocupado por la seguridad. Usted está en una posición única, porque aunque la mayoría de los tutoriales y las cosas mencionan una máquina virtual de máquina acoplable como requisito previo, su público objetivo es principalmente gente en OS X o Windows que no puede ejecutar la ventana acoplable sin una máquina virtual. No pierda de vista los árboles para el bosque: hipervisores (especialmente Virtualbox) == mal rendimiento de IO, uso excesivo de memoria e inicio más lento. Es por eso que tenemos docker :)


docker-machine intenta compartir el directorio de usuarios entre su máquina que ejecuta VirtualBox y la máquina virtual local predeterminada de docker (como hizo boot2docker). Si no está ejecutando la máquina virtual predeterminada, cree el vmshare y móntelo usted mismo

En Windows C:/Users y en mac /Users se montarán en la VM de docker default como /Users . Linux compartirá /home y se montará como /home

vmhost$ docker-machine ssh default vm$ mount | grep User Users on /Users type vboxsf (rw,nodev,relatime) vm$ exit

Listar un directorio de usuarios locales

vmhost$ ls -1 /Users/me/docker compose_env_file registry_push_test

Monte el directorio local, que se comparte con vm, como un volumen contenedor.

vmhost$ docker run -v /Users/me/docker:/test busybox ls /test compose_env_file registry_push_test

Lo mismo funciona en la máquina virtual, ya que realmente es donde se ejecuta el comando anterior.

vm$ docker run -v /Users/me/docker:/test busybox ls /test compose_env_file registry_push_test

Si desea que aparezcan cambios en su máquina virtual en su máquina virtual, debe trabajar desde su directorio de usuarios y utilizar rutas relativas en la composición de la ventana acoplable.