> For the complete documentation index, see [llms.txt](https://hayashier.gitbook.io/article/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hayashier.gitbook.io/article/containers/setup-test-environment.md).

# Dockerを利用してさっと検証環境構築

## Dockerを利用してさっと検証環境構築

### OS

```
# Amazon Linux AMI
$ docker run -it amazonlinux:2018.03.0.20180827 /bin/bash

# Amazon Linux2
$ docker run -it amazonlinux:2.0.20180827 /bin/bash

# CentOS6
$ docker run -it centos:centos6 /bin/bash

# CentOS7
$ docker run -it centos:centos7 /bin/bash

# Ubuntu
$ docker run -it ubuntu:18.04 /bin/bash

# Debian
$ docker run -it debian:latest /bin/bash

# openSUSE
$ docker run -it opensuse:leap /bin/bash
```

### OSS

#### MySQL

```
# 5.6.41
$ docker run --name mysql5.6.41 -e MYSQL_ROOT_PASSWORD=password -d mysql:5.6.41
$ docker exec -it mysql5.6.41 mysql -u root -p

# 5.7.23
$ docker run --name mysql5.7.23 -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7.23
$ docker exec -it mysql5.7.23 mysql -u root -p
```

IP アドレスでローカルの MySQL クライアントからアクセスする場合は、`ip addr show` コマンドの実行結果で inet が IPv4 の utun デバイスの IP アドレスを確認(ここでは、10.85.11.170)

```
$ mysql -h 10.85.11.170 -u root -p
```

#### PostgreSQL

```
$ docker run --name postgres9.6 -p 5432:5432 -e POSTGRES_USER=hayashier -e POSTGRES_PASSWORD=password -d postgres:9.6
$ docker exec -it postgres9.6 psql -U hayashier
```

#### Nginx

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

動作確認

```
$ curl localhost
```

#### Apache

```
$ docker run -p 80:80 --name webserver httpd
```

動作確認

```
$ curl localhost
```

#### Squid

```
$ docker run -p 3128:3128 --name squid poklet/squid
```

動作確認

```
$ curl --proxy http://localhost:3128 -vo /dev/null https://hayashier.com

$ docker exec -it squid /bin/bash
```

#### OpenLDAP

```
$ docker run --name ldap-service --hostname ldap-service --detach osixia/openldap
$ docker run --name phpldapadmin-service -p 6443:443 --hostname phpldapadmin-service --link ldap-service:ldap-host --env PHPLDAPADMIN_LDAP_HOSTS=ldap-host --detach osixia/phpldapadmin
```

動作確認

ブラウザで <https://localhost:6443/> へアクセス。\
Login DN: cn=admin,dc=example,dc=org , Password: admin

```
$ docker exec -it ldap-service /bin/bash
# ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
```

## Dockerイメージ掃除

プロセスが終了していることを確認した上で、イメージの削除を行う。

```
# Docker プロセス確認
$ docker ps

# Docker プロセス終了
$ docker kill <CONTAINER ID 1> <CONTAINER ID 2> ...
```

一括で消せない場合は、docker ps/images で対象の ID を確認しながら、docker rm/rmi

```
# コンテナ一括削除
$ docker ps -aq | xargs docker rm

# イメージ一括削除
$ docker images -aq | xargs docker rmi
```

## 参考

* library/amazonlinux - Docker Hub\
  <https://hub.docker.com/\\_/amazonlinux/>
* centos - Docker Hub\
  <https://hub.docker.com/\\_/centos/>
* ubuntu - Docker Hub\
  <https://hub.docker.com/\\_/ubuntu/>
* debian - Docker Hub\
  <https://hub.docker.com/\\_/debian/>
* opensuse - Docker Hub\
  <https://hub.docker.com/r/opensuse/leap/>
* mysql/mysql-server\
  <https://hub.docker.com/r/mysql/mysql-server/>
* postgres\
  <https://hub.docker.com/\\_/postgres/>
