こちらの記事をやってみて、躓いたところを記載します (2019.8.31)
VagrantとDockerについて名前しか知らなかったので試した
環境:Windows 10 Home
筆者:Linux詳しくありません。Vagrant, Dockerについて名前しか知りませんでした。
Vagrant
#3.1.4. VMの起動とSSHログイン
それではVMを起動してみましょう。
vagrant up
→エラーが出る。
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.
####⇒解決法:よくエラーが出るみたいなので何回かリトライする
⇒あとは、別PCでやってみた時にVirtualBoxのインストールを忘れていたくらいでした。
Docker
3.2.4. Dockerイメージのビルド
それでは、作成したコンテナを起動してみます。
vagrant@vagrant-ubuntu-trusty-64:/vagrant$ docker run -i -t -v /vagrant:/tmp/shared --name="hogehoge" hidekuro/my-bash
root@246dc5e41ffd:/#
→エラーが出る。
vagrant@vagrant-ubuntu-trusty-64:~$ docker run -i -t -v /vagrant:/tmp/shared --name="hogehoge4" cs8/my-bash
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process
caused "process_linux.go:297: copying bootstrap data to pipe caused "write init-p: broken pipe"": unknown.
⇒**検索したところ、別のカーネルをインストールすると直るとのこと**
## 解決法1 別のカーネルをインストールする
https://github.com/docker/for-linux/issues/591#issuecomment-463337254
>install 4.4 lts kernel:
>>sudo apt-get install --install-recommends linux-generic-lts-xenial
>
>reboot into the newly installed kernel.
(1.現在のカーネル確認)
vagrant@vagrant-ubuntu-trusty-64:~$ uname -a
Linux vagrant-ubuntu-trusty-64 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
2.インストール
sudo apt-get install --install-recommends linux-generic-lts-xenial
3.再起動
vagrant@vagrant-ubuntu-trusty-64:~$ exit
PS ~\vm\hello-infra> vagrant reload
(4.操作後のカーネル確認)
vagrant@vagrant-ubuntu-trusty-64:~$ uname -a
Linux vagrant-ubuntu-trusty-64 4.4.0-148-generic #174~14.04.1-Ubuntu SMP Thu May 9 08:17:37 UTC 2019 x86_64 x86_64
x86_64 GNU/Linux
## 解決法2 別バージョンのubuntuにする
Vagrantfileを書き換え、trustyからxenialにする
(Ubuntu 16.04 LTS (Xenial Xerus))
```diff:Vagrantfile
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
- config.vm.box = "ubuntu/trusty64"
+ config.vm.box = "ubuntu/xenial64"
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--ostype", "Ubuntu_64"]
end
config.vm.provision "docker"
end
この時行った方法は、別ディレクトリにコピーして最初から始めました。(vagrant up
から)
vagrant reload --provision
でできるのかは不明です。
躓いていないが、書き方を変えてみたところ
1.MAINTAINERからLABELへ
VSCodeでDockerfile
を見てみると、警告が出ていました
調査結果です
・Docker 1.13からMAINTAINERの使用が非推奨(deprecated)
・MAINTAINERの代わりにLABELを使う
https://qiita.com/okisanjp/items/a43068f956d273703ea8
http://docs.docker.jp/engine/userguide/labels-custom-metadata.html
書き換えました
FROM ubuntu:trusty
+ LABEL maintainer="cs8"
- MAINTAINER cs8
CMD ["/bin/bash"]
さいごに
コード
https://github.com/cscs8/hello-infra
https://github.com/cscs8/hello-infra2
こちらの記事書いてくださった方、ありがとうございます。
・VagrantとDockerについて名前しか知らなかったので試した
初投稿でQiitaもよくわからないため、ご意見・ご指摘どしどしお願いいたします。