急いでイソイテク

並盛り技術ダクダクで。

Dockerfile

※記載途中

httpd

# vi Dockerfile

---
FROM docker.io/centos:centos7
MAINTAINER <name> <<メルアド>>
RUN yum -y install httpd
RUN sed -i -e 's/\#ServerName www.example.com:80/ServerName <アドレス>/g' /etc/httpd/conf/httpd.conf
CMD /usr/sbin/httpd -k start -D FOREGROUND
---

image作成は
# docker build -t <イメージ名>:<タグ> <Dockerfileのパス>

コンテナ起動は
# docker run -i -t -p <ホスト側ポート>:<コンテナ内ポート> -d --name <コンテナ名> <イメージ名:タグ>
※Dockerfile内のCMD節でコマンドを指定する場合は、最後のコマンドを省略する。
※もし省略しない場合は、Dockerfile内のCMDより優先されるっぽい。

動作確認は
# curl http://127.0.0.1:50050/

mysql

docker run -i -t -p 53306:3306 -d --name mysqldocker -e MYSQL_ROOT_PASSWORD=mysql centos7/mysql mysql mysql -h localhost:53306 -uroot -p

→エラーERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)が出て落ちている。

→この場合は、コンテナ内で

touch /var/lib/mysql/mysql.sockして

/etc/my.cnfに

[client] socket=/var/lib/mysql/mysql.sock

を追記する。

それから

docker run --privileged -i -t -p 53306:3306 -d --name mysqldocker -e MYSQL_ROOT_PASSWORD=mysql centos7/mysql /sbin/init

attachするには

nsenter -t $(sudo docker inspect --format '{{.State.Pid}}' mysqldocker) -m -u -i -n -p /bin/sh

メモ

mysql -u <username> -p<password> -h <inspectで調べたmysqlコンテナのIPアドレス>