Docker安装
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker --now
mkdir -p /etc/docker/
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
systemctl daemon-reload
systemctl restart docker
Docker-compose安装
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
第一题
FROM naqoda/mysql-client # 一个只有centos7和mysql客户端的镜像
WORKDIR /root
RUN mkdir /data/ && touch /data/log
RUN touch /root/count.sh
RUN echo '#!/bin/bash' >> /root/count.sh
RUN echo 'host=$1' >> /root/count.sh
RUN echo 'port=$2' >> /root/count.sh
RUN echo 'user=$3' >> /root/count.sh
RUN echo 'while :' >> /root/count.sh
RUN echo 'do' >> /root/count.sh
RUN echo 'msg=`mysql -h $1 -P $port -u$user -e "show status like '\''Threads_connected'\'';"|awk '\''NR==2{print$2}'\''`' >> /root/count.sh
RUN echo 'echo [`date "+%Y-%m-%d %H:%M:%S"`] Number of active DB connections is $msg. |tee -a /data/log' >> /root/count.sh
RUN echo 'sleep 30' >> /root/count.sh
RUN echo 'done' >> /root/count.sh
CMD bash /root/count.sh $HOST $PORT $USER
# 在Dockerfile所在目录构建
docker build -t counter:v0.1 .
docker images # 获取 counter的IMAGE_ID
docker run -e HOST=47.94.218.68 \
-e PORT=3306 \
-e USER=root \
-e MYSQL_PWD=123456 \
-d IMAGE_ID
docker ps # 获取counter的CONTAINER_ID
docker logs CONTAINER_ID # 方法一
docker exec -it CONTAINER_ID tail -f /data/log # 方法二
第二题
version: "3.9"
services:
mysql-server:
image: mysql:5.7
container_name: mysql-server
restart: always
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: 123456
counter:
build: .
depends_on:
- mysql-server
restart: always
environment:
HOST: mysql-server
PORT: 3306
USER: root
MYSQL_PWD: 123456
docker-compose up # 启动,可以加 -d 后台启动
# 新建一个会话
docker ps # 获取counter的CONTAINER_ID
docker logs CONTAINER_ID # 方法一
docker exec -it CONTAINER_ID tail -f /data/log # 方法二