Docker部署应用mysql、tomcat、Nginx、Redis、迁移、备份

MySQL部署

拉取mysql镜像

docker pull centos/mysql-57-centos7

创建容器

docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

-p 代表端口映射,格式为  宿主机映射端口:容器运行端口

-e 代表添加环境变量  MYSQL_ROOT_PASSWORD 是root用户的登陆密码

远程登录mysql,连接宿主机的IP ,指定端口为33306

注意,不建议把数据库文件放在docker里面,采用目录挂载持久化数据库文件、日志、配置文件

创建my.cnf

mkdir -p /usr/local/mysql/config/
cd /usr/local/mysql/config/
vi my.cnf
[mysqld]
character-set-server=utf8
default_authentication_plugin= mysql_native_password
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
docker network create -d bridge my-net

#最新版安装
docker run \
    -p 3306:3306 \
    --network my-net \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -v /usr/local/mysql/data:/var/lib/mysql:rw \
    -v /usr/local/mysql/log:/var/log/mysql:rw \
    -v /usr/local/mysql/config/my.cnf:/etc/mysql/my.cnf:rw \
    -v /etc/localtime:/etc/localtime:ro \
    --name mysql \
    --restart=always \
    -d mysql
#5.7安装
docker run \
    -p 33306:3306 \
    --network my-net \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -v /usr/local/mysql/data:/var/lib/mysql:rw \
    -v /usr/local/mysql/log:/var/log/mysql:rw \
    -v /usr/local/mysql/config/my.cnf:/etc/mysql/my.cnf:rw \
    -v /etc/localtime:/etc/localtime:ro \
    --name mysql5.7 \
    --restart=always \
    -d mysql:5.7


-d 	后台运行容器
-p 3306:3306 	指定端口映射(主机(宿主)端口:容器端口)
--network my-net 加入docker网络互访用
--restart=always 	开机启动
--privileged=true 	提升容器内权限
--name 	为容器指定一个名称
-e  	设置环境变量
MYSQL_ROOT_PASSWORD=123456 	初始密码
-v /usr/local/mysql/cnf/my.cnf:/etc/my.cnf 映射配置文件
-v /usr/local/mysql/data:/var/lib/mysql 映射数据目录
-v /usr/local/mysql/logs:/logs 
mysql 	镜像名称

tomcat部署

拉取镜像

docker pull tomcat:7-jre7

创建容器  -p表示地址映射

docker run -di --name=mytomcat -p 9000:8080 
-v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7

Nginx部署

拉取镜像

docker pull nginx

创建Nginx容器

mkdir -p /usr/docker/nginx/conf
mkdir -p /usr/docker/nginx/conf/conf.d
mkdir -p /usr/docker/nginx/html
mkdir -p /usr/docker/nginx/logs


docker run --name test -d -p 88:80 nginx
docker exec -it test /bin/bash

docker cp test:/etc/nginx/nginx.conf /usr/docker/nginx/conf/
docker cp test:/etc/nginx/conf.d/default.conf  /usr/docker/nginx/conf/conf.d
docker cp test:/usr/share/nginx/html/index.html  /usr/docker/nginx/html
docker cp test:/usr/share/nginx/html/50x.html  /usr/docker/nginx/html

docker rm -f test
#docker rm -f nginx

docker run --name nginx --privileged \
-v /usr/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:rw \
-v /usr/docker/nginx/conf/conf.d:/etc/nginx/conf.d:rw \
-v /usr/docker/nginx/html:/usr/share/nginx/html:rw \
-v /usr/docker/nginx/logs:/var/log/nginx \
--restart=always \
-p 80:80 \
nginx

Redis部署

拉取镜像

docker pull redis

创建容器

docker run -di --name=myredis -p 6379:6379 redis

 

Nextcloud部署

mkdir -p /usr/docker/nextcloud/html

docker run --name nextcloud -p 8080:80 -v /usr/docker/nextcloud/html:/var/www/html -d --restart=always nextcloud

 

 

迁移、备份

容器保存为镜像

我们可以通过以下命令将容器保存为镜像

docker commit mynginx mynginx_i

镜像备份

我们可以通过以下命令将镜像保存为tar 文件

docker  save -o mynginx.tar mynginx_i

镜像恢复与迁移

首先我们先删除掉mynginx_img镜像 然后执行此命令进行恢复

docker load -i mynginx.tar

-i 输入的文件

执行后再次查看镜像,可以看到镜像已经恢复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值