1. Mysql 安装
1.1 安装并启动
#拉取mysql
docker pull mysql:5.7
#启动mysql
docker run -p 3306:3306 --name mysql \
--restart=always \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
1.2 配置mysql编码
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
1.3 重启mysql 容器
docker restart mysql
1.4 容器随机启动
#docker update --restart=always [容器名字]
docker update --restart=always mysql
2.1 安装Redis
# 拉取redis镜像
docker pull redis
# 启动redis
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf \
--appendonly yes
参数说明:
- -p 6379:6379: 将容器6379端口映射到宿主机的6379端口上
- —name redis: 容器名字
- -v /mydata/redis/data:/data \ 数据文件挂载到主机
- -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \ 配置文件挂载到主机
- -d redis redis-server /etc/redis/redis.conf 后台运行,指定配置文件
- —appendonly yes 开启redis持久化
2.2 Redis持久化
vi /mydata/redis/conf/redis.conf
# appendonly yes
docker restart redis
3 Portainer
3.1 安装
docker run -d -p 9000:9000 --restart=always --name portainer -v /var/run/docker.sock:/var/run/docker.sock -v /cppcc/docker/portainer/data:/data docker.io/portainer/portainer
3.2 访问
http://ip:90004 Nginx
4.1 安装Nginx
拉取nginx镜像
docker pull nginx:1.10
运行容器
- 从容器中拷贝nginx配置
如果我们要把宿主机和容器中的nginx.conf配置文件做映射,在没有nginx.conf配置文件的前提下我们可以先运行容器,把配置文件拷贝到宿主机再从新运行一个新的容器。
因为nginx启动时需要nginx.conf配置文件,但是第一次运行容器时我们没有是无法运行nginx的。所以可以先运行nginx,从nginx容器中把nginx.conf配置文件拷贝到我们的宿主机。
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-d nginx:1.10
将容器内的配置文件拷贝到宿主机指定目录
docker container cp nginx:/etc/nginx /mydata/docker/nginx
修改同步到宿主机的文件夹名称
mv nginx conf
删除容器
docker rm -f nginx
- 重新运行容器(此时已经有配置文件映射)
docker run -p 80:80 --name nginx \
--restart=always \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
4.2 访问
http://ip:port