docker-应用部署

1.mysql部署


#  将data路径、配置文件路径、配置文件分别映射到容器中。但是我们目前没有文件夹,首先在home路径下创建文件夹:
mkdir /home/mysql
mkdir /home/mysql/conf.d
mkdir /home/mysql/data/
#  然后创建my.cnf并且编辑,将以下内容复制进去并且保存:
[client]
default-character-set=utf8
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

然后将配置文件进行映射:

docker run  -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 1434:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
#  冒号后面的为容器上的路径

image
image
当我们在本地操作增加一个库,这个库也会同步到data目录下:
image
image
进入到该mysql容器中:

docker exec -it 0f840dff7e69 /bin/bash

进入到mysql中:

mysql -uroot -p123456

image
然后我们现在先停止,再删除容器。但是当我进入到/home/mysql/data目录下,我们的数据文件(库、表)都还在:

docker stop 0f840dff7e69  # 停止容器
docker rm 0f840dff7e69  # 删除容器

image
这时我们只需要重新执行上面的命令,执行同样的配置,再次开启一个容器,做好目录映射,数据都还在:
image
image

2.nginx部署

1.拉取并且运行镜像

docker run -id --name nginx -p 80:80 nginx

image
如果访问的是阿里云服务器需要在安全组上配置端口:
image
image
2.在宿主机家目录下,新建一个html目录,新建一个index.html,并且编辑内容:

mkdir html
vim index.html

image
3.然后停掉nginx容器,

docker stop b738d42a2801

4.创建一个新的nginx1容器,和宿主机index.html所在的目录做目录映射

docker run -id --name nginx1 -p 80:80 -v /html/:/usr/share/nginx/html nginx  # 目录映射
docker exec -it 1f3c6a42f190 /bin/bash  # 切换到容器中
cd /usr/share/nginx/html  # 切换到目标目录下
ls  # index.html
cat index.html  #  <h1>index</h1>  index.html成功映射到该目录下

然后直接访问宿主机ip(端口默认80),发现我们可以访问到index.html
image

3.部署redis

1.拉取镜像

docker pull redis

2.目录映射

docker run -id  -p 6379:6379 --name redis -v /root/redis.conf:/etc/redis/redis.conf -v /root/data:/data redis  redis-server /etc/redis/redis.conf
3a2eb19d77a460e1d69a674795b7910b4f1520a6bb841eec7eb49c7470208e5a

3.进入到容器内:

docker exec -it f3dbd235e07a /bin/bash

4.执行redis-cli,就可以进入到redis中

redis-cli

image
image
image
image
image

4.迁移与备份

我们之前学习了镜像启动成容器,但是容器桩的很多软件也可以编程一个镜像,此后我们再启动这个镜像,还能够恢复容器之前的过程(类似三体世界中人脱水和浸泡的过程浸泡之后拥有脱水之前的一切特质)
1.运行一个centos对的容器:

docker run -id --name centos_vim centos:7

2.进入到容器

docker exec -it 8ea15a3326d6 /bin/bash

3.在centos中安装yum:

yum install vim

4.在aaa路径下创建xx.py,写入一句代码:

mkdir aaa
cd aaa
vim xx.py  # 编辑xx.py

image
image
5.将容器打包成镜像(需要在容器外执行,容器内没有docker命令):

docker commit centos_vim centos_vim_image
#  centos_vim是容器名,centos_vim_image是镜像名

成功将容器转化成镜像:
image
6.删除容器,并用镜像构件新的容器,成功运行并且所以之前的东西都在:

docker  rm 8ea15a3326d6 -f
docker run -id --name centos_vim centos_vim_image:latest

image

posted @ 2023-04-13 20:19  ERROR404Notfound  阅读(63)  评论(0)    收藏  举报
Title