Docker搭建 Nginx + PHP + Mysql + Redis + Swoole 的服务器

2019年10月9日 0 条评论 1.41k 次阅读 1 人点赞

服务器:Aliyun,

系统:Centos 7.6

1. 安装 docker:# 卸载已有版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
# 通过 yum 下载/安装
yum install -y yum-utils device-mapper-persistent-data lvm2# 设置 yum 源到 aliyun
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 优化 yum
yum makecache fast
# 安装 docker
yum -y install docker-ce# 启动 docker
systemctl start docker
# 设置开机启动
systemctl enable docker

2.安装 docker-compose
https://docs.docker.com/compose/install/
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

3. 安装 SVN
使用Dockerfile.

docker run -dt -p "3690:3690" -v xxxx/subversion/src_store:/opt/svn/src_store -v xxxx/html:/opt/wwwroot/src_store --name svn xxxx /bin/bash
docker run -dt -p "3690:3690" -v /usr/local/docker/subversion/src_store:/opt/svn/src_store -v /usr/local/docker/html:/opt/wwwroot/src_store --restart=always --name svn svn:1.0.2 /autoload.sh
chmod +x /opt/svn/src_store/hooks/post-commit
svnserve -d -r /opt/svn/

问题:svn: warning: cannot set LC_CTYPE locale
解决方法:
RUN apt-get clean && apt-get update && apt-get install -y locales
locale-gen zh_CN.UTF-8

4. 问题:ERROR: Pool overlaps with other one on this address space|
解决办法:
docker network ls   
docker network rm xxx

5. 问题: 在 docker-compose 运行时,nodejs 的容器总是自动退出,Docker compose exited with code 0。
原因: 如果容器内没有持续执行的内容,在默认情况下会自动退出。
解决办法:
在容器内增加持续执行的程序。
或者在 docker-compose.yml 里加入下面的设置,和 docker run 的时候,t 参数是一个意思。
stdin_open: true
tty: true

6. 问题: 在 Dockerfile 里,RUN 命令的时候,总需要应答。
解决办法:
RUN sh -c '/bin/echo -e "y\n\ny" | sh install.sh'

7. 问题 ufw allow 22 的时候报错
WARN: initcaps
[Errno 2] iptables v1.8.4 (legacy): can't initialize iptables table `filter': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.

Rules updated
Rules updated (v6)
解决办法:docker exec --it --privileged (https://www.jianshu.com/p/47690d206112)

guojia

这个人太懒什么东西都没留下