启动常用容器
启动nginx
docker run -d -p 80:80 -v /data/wwwroot/:/app -v /data/wwwroot/nginx.conf:/etc/nginx/nginx.conf:ro -v /data/wwwroot/app.conf:/etc/nginx/conf.d/app.conf:ro --link m_phpfpm:phpfpm --link minio:minio --name m_nginx nginx:1.22
启动PHP7.0+FPM
docker run -d -p 9000:9000 -v /data/wwwroot:/app --link m_mysql:mysql --link m_redis:redis --name m_phpfpm adhocore/phpfpm:7.4
启动Minio(分布式文件系统)
docker run -d -p 9001:9001 -p 9090:9090 --name minio --restart=always -e "MINIO_ACCESS_KEY=xxxxxxx9" -e "MINIO_SECRET_KEY=xxxxxx" -v /data/minio/data:/data -v /data/minio/minio.config:/root/.minio minio/minio server /data --console-address ":9090" -address ":9001"
启动Mysql
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345678 --name m_mysql mysql:5.7
Docker镜像制作
FROM webdevops/php-nginx:7.3
EXPOSE 80
ADD ./install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions && sync && install-php-extensions bz2 bcmath dba gettext gd mcrypt opcache pcntl pdo_mysql redis shmop sysvmsg sysvsem sysvshm zip
RUN mkdir -p /app && rm -rf /data/minio && mkdir -p /data/minio/image && mkdir -p /data/minio/file && rm -f /opt/docker/etc/nginx/vhost.conf && rm -f /opt/docker/etc/supervisor.d/think.conf && rm -f /opt/docker/etc/supervisor.d/minio.conf
WORKDIR /app
COPY . /app
RUN mkdir -p /app/runtime && chmod 0777 /app/runtime && chown -R nginx:nginx /app/public && chmod +x /app/minio/minio
#复制nginx文件
COPY ./app.conf /opt/docker/etc/nginx/vhost.conf
#配置supervisor
COPY ./think.conf /opt/docker/etc/supervisor.d/think.conf
#配置minio
COPY ./minio.conf /opt/docker/etc/supervisor.d/minio.conf
制作镜像(Dockerfile目录运行,后面有个 . )
docker build -t imageName:version .
打包镜像
docker commit img-id imageName:version
登录docker-hub
docker login docker-hub-host
官方不需要docker-hub-host
推送镜像
docker push docker-hub-host/account/imageName:version
把镜像打tag
docker tag imageName:version docker-hub-host/account/imageName:version
minio.conf
[supervisord]
nodaemon=true
[supervisorctl]
[program:minio]
command = /app/minio/minio server /data/minio --console-address ":9090" -address ":9001"
directory=/app/minio/
process_name=%(program_name)s
priority=15
startsecs = 0
autostart=true
autorestart=true
stdout_logfile=/app/logs/minio.out.log
stderr_logfile=/app/logs/minio.err.log
stdout_logfile_maxbytes=2MB
stderr_logfile_maxbytes=2MB
think.conf(异步队列)
[supervisord]
nodaemon=true
[supervisorctl]
[program:think]
command = /php /app/think queue:work --daemon
directory=/app/
process_name=%(program_name)s
priority=14
startsecs = 0
autostart=true
autorestart=true
stdout_logfile=/app/logs/queue.out.log
stderr_logfile=/app/logs/queue.err.log
stdout_logfile_maxbytes=2MB
stderr_logfile_maxbytes=2MB
Docker常用命令
删除容器 docker rm img-id
删除镜像 docker rmi img-id
进入容器 docker exec -it img-id|dockerName /bin/bash
查看运行的容器列表 docker ps
查看所有启动过的容器 docker ps -a
查看容器日志 docker logs img-id|dockerName
停止容器 docker stop img-id|dockerName
启动容器 docker start img-id|dockerName