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"}EOFsystemctl daemon-reloadsystemctl 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-composechmod +x /usr/local/bin/docker-composedocker-compose --version
第一题
FROM naqoda/mysql-client # 一个只有centos7和mysql客户端的镜像WORKDIR /rootRUN mkdir /data/ && touch /data/logRUN touch /root/count.shRUN echo '#!/bin/bash' >> /root/count.shRUN echo 'host=$1' >> /root/count.shRUN echo 'port=$2' >> /root/count.shRUN echo 'user=$3' >> /root/count.shRUN echo 'while :' >> /root/count.shRUN echo 'do' >> /root/count.shRUN echo 'msg=`mysql -h $1 -P $port -u$user -e "show status like '\''Threads_connected'\'';"|awk '\''NR==2{print$2}'\''`' >> /root/count.shRUN echo 'echo [`date "+%Y-%m-%d %H:%M:%S"`] Number of active DB connections is $msg. |tee -a /data/log' >> /root/count.shRUN echo 'sleep 30' >> /root/count.shRUN echo 'done' >> /root/count.shCMD bash /root/count.sh $HOST $PORT $USER
# 在Dockerfile所在目录构建docker build -t counter:v0.1 .docker images # 获取 counter的IMAGE_IDdocker run -e HOST=47.94.218.68 \ -e PORT=3306 \ -e USER=root \ -e MYSQL_PWD=123456 \ -d IMAGE_IDdocker ps # 获取counter的CONTAINER_IDdocker 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_IDdocker logs CONTAINER_ID # 方法一docker exec -it CONTAINER_ID tail -f /data/log # 方法二