Docker 备忘
CentOS 安装 Docker CE
sudo yum remove docker docker-client docker-client-latest docker-common \
docker-latest docker-latest-logrotate docker-logrotate \
docker-selinux docker-engine-selinux docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
sudo systemctl start docker
容器时区(含 OpenJDK / Spring Boot)
进容器改:
docker exec -it <container> bash
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# Debian/Ubuntu 镜像还可:
# dpkg-reconfigure -f noninteractive tzdata
启动时注入(推荐):
docker run -e TZ=Asia/Shanghai ...
镜像构建:
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
常用 run 片段
Nginx
docker run -d --name nginx \
-v /conf/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /conf/nginx/conf.d:/etc/nginx/conf.d \
--restart always -p 80:80 -p 443:443 nginx
官方配置参考:https://github.com/nginxinc/docker-nginx/tree/master/stable/alpine
MySQL 5.7
docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=root \
-v /data/mysql:/var/lib/mysql \
-v /conf/mysql:/etc/mysql/conf.d \
-p 3306:3306 -d mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
Redis
docker run --name redis -d \
-v /data/redis:/data \
redis redis-server --appendonly yes --requirepass '<password>'
客户端临时连(link 方式,旧网络模型):
docker run -it --link redis:redis --rm redis \
redis-cli -h redis -p 6379 -a '<password>'
Gradle + Spring Boot(示例)
docker run -u root \
-v /data/wwwroot/app:/data/wwwroot -w /data/wwwroot \
--restart always --name app-prod -d -p 8888:8888 \
gradle gradle bootRun -PjvmArgs="-Dspring.profiles.active=prod"
内网 host 映射、固定 IP 等按实际网络改,勿照抄示例地址。