Memo

メモ > サーバ > 各論: Docker > VagrantのUbuntuでDockerを使用する

■VagrantのUbuntuでDockerを使用する
■Vagrantfile
Vagrant.configure(2) do |config| config.vm.box = "bento/ubuntu-18.04" config.vm.box_check_update = false config.vm.network "forwarded_port", guest: 80, host: 8080 config.vm.network "private_network", ip: "192.168.33.10" config.vm.synced_folder "./code", "/var/www" end
■起動
cd C:\vagrant\ubuntu_docker vagrant up
■日本語化 インストールに20分ほど時間がかかった 言語切り替え後、再ログインすると反映される
$ sudo apt install language-pack-ja-base language-pack-ja ibus-mozc $ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
【Ubuntu 18.04 LTS Server】日本語環境にする(日本語ロケールとタイムゾーンの変更) | The modern stone age. https://www.yokoweb.net/2018/05/04/ubuntu-18_04-lts-server-japanese/ ■タイムゾーンを設定
$ sudo dpkg-reconfigure tzdata
地域の選択画面が表示されるので、「アジア」「東京」を選択する (カーソルキーで対象を変更し、Enterを押すと決定できる) ■Dockerをインストール
$ sudo apt-get update $ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo apt-key fingerprint 0EBFCD88 pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ 不明 ] Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S] $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" … add-apt-repository の部分は、環境によって実行すべき内容が変わるので注意 $ sudo apt-get update $ sudo apt-get install -y docker-ce $ sudo docker info $ sudo docker container run hello-world $ sudo docker image ls
Ubuntuにdockerをインストールする - Qiita https://qiita.com/tkyonezu/items/0f6da57eb2d823d2611d Get Docker Engine - Community for Ubuntu | Docker Documentation https://docs.docker.com/install/linux/docker-ce/ubuntu/ ■一般ユーザでDockerを実行できるようにする
$ sudo usermod -aG docker vagrant $ docker info … 上記変更は、再接続後に反映されるので注意 $ docker container run hello-world $ docker image ls
■Apache+PHPの動作確認
$ docker container run --name php -p 80:80 -d php:7.3-apache $ docker image ls $ docker container ls $ docker container exec -it php bash … phpコンテナのターミナルに接続 # echo 'Hello!' > index.html # exit $ curl http://localhost/ Hello!
ブラウザで以下にアクセスし、「Hello!」と表示されれば成功…だが、表示されない? vagrant up のときにエラーが表示されたから、かも http://192.168.33.10/
$ docker container rm -f $(docker container ls -a -q) … 終了
■Docker Compose をインストール
$ sudo curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose $ sudo docker-compose --version $ docker-compose --version … vagrantユーザでも実行できることを確認
■Docker Compose Docker Compose 用のファイルはあらかじめ配置しておく
$ cd /var/www/docker/apache_php7_mysql_gd $ docker-compose build … ビルドする場合(構成を変更した場合など) $ docker-compose up -d … 起動 $ docker-compose down … 終了 $ docker container exec -it php bash … phpコンテナのターミナルに接続する場合 $ docker container exec -it mysql bash … mysqlコンテナのターミナルに接続する場合 $ mysql -u root -p … MySQLに接続
http://192.168.33.10/ ■終了
cd C:\vagrant\ubuntu_docker vagrant halt
■ubuntu/trusty64 の場合 Docker実行時にエラーになった カーネルのバージョンアップで対応できるかもしれないが、bento/ubuntu-18.04 を使うのが無難そう
$ sudo docker container run hello-world 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.
Ubuntu日本語フォーラム / ubuntu14.04でdockerコンテナが実行できない https://forums.ubuntulinux.jp/viewtopic.php?pid=120508 ■ubuntu/bionic64 の場合 Vagrant起動時にエラーが表示されたが、SSHで接続はできた ただしホストPCからHTTP接続できない?フォルダ同期もできていない? bento/ubuntu-18.04 なら大丈夫だった
==> default: Attempting graceful shutdown of VM... ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key default: Warning: Connection reset. Retrying... default: Warning: Connection aborted. Retrying... default: Warning: Remote connection disconnect. Retrying... default: Warning: Connection aborted. Retrying... default: Warning: Connection reset. Retrying... default: Warning: Connection aborted. Retrying... default: Warning: Connection reset. Retrying... default: Warning: Connection aborted. Retrying... default: Warning: Connection reset. Retrying... default: Warning: Connection aborted. Retrying... default: Warning: Connection reset. Retrying... default: Warning: Connection aborted. Retrying... ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... ==> default: Configuring and enabling network interfaces... The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed! /sbin/ifdown 'enp0s8' || true /sbin/ip addr flush dev 'enp0s8' # Remove any previous network modifications from the interfaces file sed -e '/^#VAGRANT-BEGIN/,$ d' /etc/network/interfaces > /tmp/vagrant-network-interfaces.pre sed -ne '/^#VAGRANT-END/,$ p' /etc/network/interfaces | tac | sed -e '/^#VAGRANT-END/,$ d' | tac > /tmp/vagrant-network-interfaces.post cat \ /tmp/vagrant-network-interfaces.pre \ /tmp/vagrant-network-entry \ /tmp/vagrant-network-interfaces.post \ > /etc/network/interfaces rm -f /tmp/vagrant-network-interfaces.pre rm -f /tmp/vagrant-network-entry rm -f /tmp/vagrant-network-interfaces.post /sbin/ifup 'enp0s8' Stdout from the command: Stderr from the command: bash: 行 4: /sbin/ifdown: そのようなファイルやディレクトリはありません bash: 行 20: /sbin/ifup: そのようなファイルやディレクトリはありません
以下でApacheをインストールしても、ホストのPCからはアクセスできない? Dockerの問題では無さそう Vagrantのネットワーク関連の問題かも
$ sudo apt-get install apache2 ... Apacheをインストール $ apache2 -v ... Apacheのバージョンを確認 $ sudo service apache2 start ... Apacheを起動 $ sudo service apache2 stop ... Apacheを停止させる場合 $ sudo service apache2 restart ... Apacheを再起動させる場合
以下を削除するといいと解説されているページがあった
$ sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules $ sudo rm -rf /etc/udev/rules.d/70-persistent-cd.rules $ sudo rm -rf /etc/udev/rules.d/60-vboxadd.rules
コマンドプロンプトから以下を実行
$ vagrant reload
…としてみたが、状況は変わらなかった Vagrantを扱うときにハマりがちポイントをまとめてみた - Qiita https://qiita.com/srockstyle/items/233ef326a75362200a91 package化したboxを使うときによく出るエラー -- blog.10rane.com http://blog.10rane.com/2015/08/28/errors-out-when-using-to-package-the-box/ vagrant upでネットワークエラーが出たら - Qiita https://qiita.com/Esfahan/items/ec900276f0894cc9abdd

Advertisement