dockerが使えなければvagrantを使えばいいじゃない

docker

いい感じのdocker-compose.ymlを書いて環境を構築してみようと思ったのですが、hyper-vが使えないwindows10 homeで実行したらnginx起動時ににエラーになりました。
docker for windowsのほうで実行してたときは普通に動いてたやつです。(きっとmacでもちゃんと動くんだろうなあ~)
このPCはdocker for windowsが使えないので、docker tool boxを使ってます。

エラーの内容

共有フォルダの話だと思うんですが、よくわからない。。

ERROR: for codelikewebdocker_nginx_1 Cannot start service nginx: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/c/codelike_web_docker/nginx/codelike_server.conf\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/overlay2/cd8e7fa038bd1ba942d078eaa6e66b0c42619c4461eba2e55c6a14c92c9f20e4/merged\\\" at \\\"/mnt/sda1/var/lib/docker/overlay2/cd8e7fa038bd1ba942d078eaa6e66b0c42619c4461eba2e55c6a14c92c9f20e4/merged/etc/nginx/conf.d/default.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

ERROR: for nginx Cannot start service nginx: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/c/codelike_web_docker/nginx/codelike_server.conf\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/overlay2/cd8e7fa038bd1ba942d078eaa6e66b0c42619c4461eba2e55c6a14c92c9f20e4/merged\\\" at \\\"/mnt/sda1/var/lib/docker/overlay2/cd8e7fa038bd1ba942d078eaa6e66b0c42619c4461eba2e55c6a14c92c9f20e4/merged/etc/nginx/conf.d/default.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
ERROR: Encountered errors while bringing up the project.

思い付きでやってみた

そうだ、dockerがダメならvagrantがあるじゃない・・・!

vagrantをインストールして下記のVagrantfileを作って、その環境にdockerを入れましたw
shellのほうにdockerのツール群をインスールするように書いてみましたが入ってくれませんでした・・・
そんなときはvagrant sshで直接インストールだっ

Vagrantfileの内容

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|        
        config.vm.box = "bento/centos-7.4"

  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.synced_folder "../../codelike_web_docker", "/codelike_web_docker"

  config.vm.provider "virtualbox" do |vb|
     vb.memory = "2024"
   end

  config.vm.provision "shell", inline: <<-SHELL
     yum update
     yum install -y yum-utils device-mapper-persistent-data lvm2
     yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
     yum makecache fast
     yum install -y docker-ce
     curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
     chmod +x /usr/local/bin/docker-compose
  SHELL
end

docker-ceとdocker-composeをインストールして、docker-compose upしてあげたら動きました。

まだまだ改良の余地がありそうですね。。

別に他のPC使ってもよかったかも・・・

ちょっと作りたいものがあるのでlaravel環境を簡単に動かせるように環境構築中です。

dockerプログラミング
プロフィール
yasuaki

福岡でフリーランスをやってます。
業界歴14年になりました、SESで働くことがほとんどです。
なんでもやってますが、Webが得意です。

このブログではプログラミング技術の内容を中心に商品レビューなどを書いています。
記事が参考になりましたら、共有やリンクなどいただけると幸いです。

yasuakiをフォローする
にほんブログ村 IT技術ブログへ
yasuakiをフォローする
コードライク

コメント

タイトルとURLをコピーしました