forestec

勉強した内容をつらつらと備忘録として記していきます。

Rust環境をDockerで構築

Rustの環境をDockerで構築する際の備忘録

Dockerの導入については以下で紹介している。 yuzuremon.hatenablog.com

Dockerイメージのインストール

DockerHubから公式Rustのイメージをインストール

$ docker pull rust:1.30.1

コンテナ起動

インストールしたイメージからコンテナを起動、作成します。

コンテナを作成する前にローカルに開発を行うディレクトリを作成し、そこに移動します。

開発自体はローカル環境で行えるようにローカルとコンテナのディレクトリを同期してコンテナを作成します。

$ docker run -it --name rust_1.30.1 -w /app -v $(pwd):/app rust:1.30.1 /bin/bash

バージョン確認

$ rustc --version

以下が表示されました。

rustc 1.30.1 (1433507eb 2018-11-07)

Rust動作確認

Cargoを使用して新規プロジェクトを作成

$ cargo new --bin hello-rust

以下のようなエラーが発生。。。

error: Failed to create project `hello-rust` at `/app/hello-rust`

Caused by:
  could not determine the current user, please set $USER

USERを設定しろと言われていますね。

なので、USERをセットしてもう一度コンテナを再度実行

$docker run --rm -e USER=$USER -it -w /app -v $(pwd):/app rust:1.30.1

$cho $USERMac側で使用していたユーザーが表示されればOK

もう一度Cargoを使用して新規プロジェクトを作成

$ cargo new --bin hello-rust

またエラーが。。。

error: destination `/app/hello-rust` already exists

Use `cargo init` to initialize the directory

先程のエラー時にディレクトリだけは作成されていたようです。

ディレクトリを削除して再実行

Created binary (application) `hello-rust` project

やっと成功しました。

作成したプロジェクトを実行してみます。

$ cd hello-rust
$ cargo run --release

   Compiling hello-rust v0.1.0 (/app/hello-rust)
    Finished release [optimized] target(s) in 3.47s
     Running `target/release/hello-rust`
Hello, world!

表示されました。

これで環境構築は完了です。

Python環境をDockerで構築

Pythonの環境をDockerで構築する際の備忘録

Dockerの導入については以下で紹介している。 yuzuremon.hatenablog.com

Dockerイメージのインストール

DockerHubから公式Pythonのイメージをインストール

$ docker pull python:3.7

コンテナ起動

インストールしたイメージからコンテナを起動、作成します。

コンテナを作成する前にローカルに開発を行うディレクトリを作成し、そこに移動します。

開発自体はローカル環境で行えるようにローカルとコンテナのディレクトリを同期してコンテナを作成します。

$ docker run -d --name python_3.7 -w /app -v $(pwd):/app python:3.7 /bin/bash

確認

$ docker container ps

python_3.7が表示されるはずです。

コンテナにログイン

$ docker exec -it python_3.7 /bin/bash

Python動作確認

$ echo 'print("hello, python")' > test.py
$ python test.py

hello, pythonが表示されればOK

これでPython環境の構築は完了です。

PHP環境をDockerで構築

PHPの環境をDockerで構築する際の備忘録

Dockerの導入については以下で紹介している。 yuzuremon.hatenablog.com

Dockerイメージのインストール

DockerHubから公式phpのイメージをインストール

$ docker pull php:7.0

コンテナ起動

インストールしたイメージからコンテナを起動、作成します。

コンテナを作成する前にローカルに開発を行うディレクトリを作成し、そこに移動します。

開発自体はローカル環境で行えるようにローカルとコンテナのディレクトリを同期してコンテナを作成します。

$ docker run -d -p 80:80 --name php-app -v $(pwd):/var/www/html php:7.0-apache

確認

$ docker container ps

php-appが表示されるはずです。

コンテナにログイン

$ docker exec -it php-app /bin/bash

PHP動作確認

$ echo '<?php phpinfo();' > index.php

index.phpを作成

ブラウザで確認

localhost:80にアクセスしてphpinfoが表示されればOK

コンテナからはexitで抜けられる。

コンテナを停止

$ docker container stop php-app

これでPHP環境の構築は完了です。

Docker for Macの導入について

Docker for Macのインストール

公式サイトからインストール

インストール後、正しくインストールされているか確認を行う(ターミナルから以下を実行)

$ docker version

dockerバージョンが表示されればOK

お試しでnginxを起動してみる

次は動作確認もかねてnginxのコンテナを作成してみます。

$ docker run -d -p 80:80 --name webserver nginx

--nameでコンテナ名を指定して作成します。

コンテナ名は任意で問題ありませんが、今回はwebserverとしています。

nginxはコンテナイメージ名を指定しています。

これでコンテナが作成されたはずなので、nginxが立ち上がっているか確認します。

$ docker container ps

webserverという名前のコンテナが表示されるはずです。

実際にブラウザからlocalhostにアクセスしてみてください。

nginxのページが表示されればOK

起動したコンテナを停止する場合は以下のコマンドを実行

$ docker container stop webserver

再度起動したい場合は以下のコマンドを実行

$ docker container start webserver

これでDockerの導入は完了です。

最後に

いくつか他のDockerコマンドも記載しておきます。

停止しているコンテナも含めて全表示

$ docker container ps -a

作成したコンテナの削除

$ docker container rm webserver

Dockerイメージの表示

$ docker image ls

Dockerイメージの削除

$ docker image rm nginx