docker部署

 docker的部署与安装

 

1.1. 安装Docker

 

1.1.1. 安装工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1.1.2. 添加dockeryum

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo yum makecache fast

1.1.3. 安装Docker

sudo yum install docker-ce docker-ce-cli containerd.io

1.1.4. 启动&开机启动

sudo systemctl start docker

systemctl enable docker

1.1.5. 测试Docker

docker run hello-world

能出出来一句话 hello docker”就是ok

或者也可以通过查看版本来测试:docker version

 

 

2.1. Docker镜像加速器(阿里云)

 

配置加速器,否则下载镜像的时候回比较慢,默认是从docker hub下载

vi /etc/docker/daemon.json

{

  "registry-mirrors": ["https://5pfmrxk8.mirror.aliyuncs.com"]

}

sudo systemctl daemon-reload          //重新加载配置

sudo systemctl restart docker           //重启docker

 

或者直接执行:

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://5pfmrxk8.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

 

 

 

 

 

3.1. Docker服务操作

 

启动dockersystemctl start docker

停止dockersystemctl stop docker

重启dockersystemctl restart docker

查看docker状态:systemctl status docker

开机启动:systemctl enable docker

查看docker概要信息:docker info

查看docker帮助文档:docker --help

 

 

 

4. 部署项目-基础环境

 

4.1.MySQL部署

1.1.1. 拉取MySQL镜像

docker pull mysql:5.7

 

查看镜像

docker images

1.1.2. 创建MySQL容器

docker run -di --name pethome_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

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

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

1.1.3. 进入MySQL容器,登陆MySQL

进入mysql容器

docker exec -it pethome_mysql /bin/bash

登陆mysql

mysql -uroot -p123456

1.1.4. 远程登陆MySQL

开启远程访问

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

flush privileges;

 

1)我们在我们本机的电脑navicat上去连接虚拟机Centos中的Docker容器,这里192.168.246.130是虚拟机操作系统的IP

2)在本地客户端执行建库脚本

执行“资源/建库语句/pethomedb.sql

1.1.5. 查看容器IP地址

我们可以通过以下命令查看容器运行的各种数据

docker inspect pethome_mysql

运行效果如下:

 

  

 

我们可以看到我们的数据库服务器的IP172.16.0.2 

 

 

 

 

4.2. Redis部署

1.1. 

1.1.1. 拉取Redis镜像

centos是基础镜像

docker pull redis

1.1.2. 创建Redis容器

docker run -di --name pethome_redis -p 6379:6379 redis --requirepass "123456"

 

1.1.3. 客户端测试

在你的本地电脑命令提示符下,用window版本redis测试

redis-cli -h 192.168.246.135

 

 

 

4.3 Nginx部署

1.1.1. 拉取Nginx镜像

docker pull nginx

1.1.2. 创建Nginx容器

docker run -di --name=pethome_nginx -p 80:80 nginx

1.1.3. 测试Nginx

浏览器地址栏输入: http://192.168.246.135 

 

 

 

 

 

整理的docker代码是:

 

nginx:

启动: start nginx.exe localhost 默认端口是80
停止: nginx.exe -s stop
重新加载: nginx.exe -s reload 修改了配置文件的时候需要重新加载.

 

Docker
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker


Docker 镜像的操作
查看镜像:docker images
搜索镜像:docker serach [镜像名字]
镜像下载:docker pull [镜像名字:版本]
镜像的移除:docker rmi [镜像名字:版本]/[镜像的id]
移除全部镜像:docker rmi `docker images -q`

 

Docker 容器操作
查看运行的容器:docker ps -a
启动容器:docker run
-i:表示运行容器
-t:表示容器启动后会进入容器命令行(交互式)。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
ex:docker run -it --name=[自定义名字] 镜像名字:版本 /bin/bash
注:启动容器并进入命令行 退出 exit 会关闭容器
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
守护式: docker run -i -d --name=容器名字 -p=外端口:内端口 镜像名字:版本号
注:启动容器 在后台运行

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
ex: docker run -id --name=[容器名字] -p=外端口:内端口 -v=外部目录路径:内部目录路径 镜像名字:版本号


其他命令:

进入守护式容器:docker exec -it 容器的名字 /bin/bash [使用exit命令不会关闭容器]
关闭启动的容器:docker stop [容器的名字]
启动关闭状态的容器:docker start [容器的名字]
删除容器:docker rm [容器的名字/ID]
删除所有容器:docker rm `docker ps -a -q`
查看容器的IP: docker inspect [容器的名字]


实战:
1.安装mysql
docker run -id --name=mysql57 -p=3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

2.安装redis
docker run -id --name=redis -p=6379:6379 redis --requirepass "123456"


构建镜像:
1.基于容器构建【就是把一个运行的容器再次打包】
docker commit [容器名字] 新镜像的名字:版本号



















 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    server {

        listen       80;

        server_name  admin.pethome.com;

        location / {

            root   pethome_admin;

            index  index.html;

        }

    }

    server {

        listen       80;

        server_name  www.pethome.com;

        location / {

            root   pethome_front;

            index  home.html;

        }

    }

https://blog.csdn.net/SEVENY_/article/details/103856623

posted @ 2021-04-09 16:29  接口interface  阅读(250)  评论(0编辑  收藏  举报