欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Docker简介、安装以及应用部署

程序员文章站 2022-05-17 08:57:23
Docker是一种容器技术,解决软件跨环境迁移的问题 Docker安装 1.yun包更新 sudo yum update 2.安装需要的软件包,yun-util提供的yum-config-manager功能 Sudo yum install -y yum-utils device-mapper-pe ......

docker是一种容器技术,解决软件跨环境迁移的问题

 

docker安装

1.yun包更新

  sudo yum update

2.安装需要的软件包,yun-util提供的yum-config-manager功能

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

3.设置yum源头为阿里云

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

4.安装docker

  sudo yum install docker-ce

5.查看docker版本

  docker –v

 

docker配置国内镜像

1.编辑 docker 的 daemon.json 配置文件

  vi /etc/docker/daemon.json

2.配置如下内容

  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

3.重启docker

  systemctl restart docker

 

docker服务相关命令:

1.启动、停止,重启、状态docker服务

  systemctl start docker

  systemctl stop docker

  systemctl restart docker

  systemctl status docker

2.设置开机启动docker服务

  systemctl enable docker

 

 

docker镜像相关命令:

1.查看镜像

  docker images

  docker images -q   #查看所有镜像id

2.搜索镜像

  docker search 镜像名称

3.拉取镜像:从docker仓库下载镜像到本地,镜像名称格式为 名称:版本号 ,如果版本号不指定则是最新版的版本。可去docker hub搜索对象镜像查看版本

  docker pull 镜像名称

4.删除镜像

  docker rmi 镜像id

  docker rmi 'docker images -q' #删除所有本地镜像

 

 

 

docker容器相关命令

1.查看容器

  docker ps #查看正在运行的容器

  docker ps -a #查看所有容器

  进入容器:docker exec 参数 #退出容器,,容器不会关闭

2.创建并启动容器

  docker run 参数

  Docker简介、安装以及应用部署

   例:docker run –it –name=名字 镜像名称:版本

3.启动容器

  docker start 容器名/id

4.关闭容器

  docker stop 容器名/id

5.删除容器

  docker rm 容器名/id

  docker rm ‘docker ps -aq’

不能够删除正在运行的容器

6.查看容器信息

  docker inspect 容器名/id

 

 

 

docker容器的数据卷
思考:docker容器删除后在容器中产生的数据也会随之删除

         docker容器和外部机器之间不能够直接交换文件

         容器之间想要进行数据交互

数据卷:

         数据卷是宿主机中的一个目录或者文件

         当个容器目录和数据卷绑定后,对方修改会立即同步

         一个数据卷可以被多个容器同时挂载,一个容器也可以被挂载多个数据卷

数据卷的作用:

         容器数据持久化

         外部机器和容器之间的通信

         容器之间数据交换

配置数据卷

1.创建容器时,使用-v参数设置数据卷

  docker run … -v 宿主机目录(文件):容器内目录(文件)

  Docker简介、安装以及应用部署

 

 

 

2.创建并挂载

  docker run –it --name=c1 –v /root/data:/root/data_container centos:7 /bin/bash

  echo itcast > a.txt 将itcast写入a.txt文件

  挂载到多个数据卷:

 Docker简介、安装以及应用部署

 

 

 

数据卷容器

多容器进行数据交换

  1. 多个容器挂载到同一个数据卷
  2. 数据卷容器
  3. 创建启c3数据卷容器,使用-v参数,设置数据卷

配置数据卷容器

1.创建启c3数据卷容器,使用-v参数,设置数据卷

  docker run –it –name=c3 –v /volume centos:7 /bin/bash

2.创建启动c1 c2容器,使用—volumes-from参数设置数据卷

  docker run –it –name=c1 –volumes-from c3 centos:7 /bin/bash

  docker run –it –name=c2 –volumes-from c3 centos:7 /bin/bash

 

 

docker应用部署

mysql部署

1.搜索mysql镜像

docker search mysql

2.拉取mysql镜像

docker pull mysql:5.6

3.创建容器

docker run –p 3306:3306 –name mysql

-v /zzyyuse/mysql/config:/etc/mysql/conf.d

-v /zzyyuse/mysql/logs:/logs

-v /zzyyuse/mysql/data:/var/lib/mysql

-e mysql_root_password=123456

-d mysql:5.6

4.操作容器中的mysql

docker exec –it mysql容器id /bin/bash

5.登录mysql

    Docker简介、安装以及应用部署

6.外部工具连接mysql

   Docker简介、安装以及应用部署

 

 

 

  主机地址是:虚拟的的ip地址

  连接成功即可在windows环境下操作虚拟机中docker中的mysql

 

7.导出docker中mysql的数据

  docker exec mysql容器id sh –c ‘mysqldump –all-databases –uroot –p”123456”’ > /zzyyuse/all-database.sql

   Docker简介、安装以及应用部署

 

 

 

tomcat部署

1.查找镜像

docker search tomcat

2.拉取tomcat镜像

docker pull tomcat

3.使用tomcat镜像创建容器

docker run –it –p 8080:8080 tomcat

-p 主机端口:docker容器端口

-p 随机分配端口

i 交互

t 终端

 

 

 

redis部署

1.查找镜像

docker search redis

2.拉取tomcat镜像

docker pull redis:3.2

3.使用redis镜像创建容器

docker run –p 6379:6379

-v /zzyyuse/myredis/data:/data

-v /zzyyuse/myredis/cof/redis.conf:/usr/local/etc/redis/redis.conf

-d redis:3.2 redis-server /usr/local/etc/redis/redis.conf

--appendonly yes

4.在主机/zzyyuse/myredis/conf/redis.conf 目录下新建redis.conf文件

vim /zzyyuse/myredis/conf/redis.conf/redis.conf

配置redis.conf文件

详解:

5.运行redis

         docker exec –it redis容器id redis-cli

  Docker简介、安装以及应用部署

 

 

6.测试持久化文件是否生成

   Docker简介、安装以及应用部署

 

   Docker简介、安装以及应用部署

 

 

 

 

 

nginx部署

1.下载nginx镜像

dcker pull nginx

docker images

2.创建挂载目录

mkdir -p /data/nginx/{conf,conf.d,html,logs}

3.编写nginx.conf配置文件,并放在文件夹中

# for more information on configuration, see:

#   * official english documentation: http://nginx.org/en/docs/

#   * official russian documentation: http://nginx.org/ru/docs/

 

user nginx;

worker_processes auto;

error_log /var/log/nginx/error.log;

pid /run/nginx.pid;

 

# load dynamic modules. see /usr/share/nginx/readme.dynamic.

include /usr/share/nginx/modules/*.conf;

 

events {

    worker_connections 1024;

}

 

http {

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

 

    access_log  /var/log/nginx/access.log  main;

 

    sendfile            on;

    tcp_nopush          on;

    tcp_nodelay         on;

    keepalive_timeout   65;

    types_hash_max_size 2048;

 

    include             /etc/nginx/mime.types;

    default_type        application/octet-stream;

 

    # load modular configuration files from the /etc/nginx/conf.d directory.

    # see http://nginx.org/en/docs/ngx_core_module.html#include

    # for more information.

    include /etc/nginx/conf.d/*.conf;

 

    server {

        listen       80 default_server;

        listen       [::]:80 default_server;

        server_name  182.254.161.54;

        root         /usr/share/nginx/html;

 

        # load configuration files for the default server block.

        include /etc/nginx/default.d/*.conf;

 

        location / {

        proxy_pass http://pic;

        }

 

        error_page 404 /404.html;

            location = /40x.html {

        }

 

        error_page 500 502 503 504 /50x.html;

            location = /50x.html {

        }

    }

 

    upstream pic{

                server 182.254.161.54:8088 weight=5;

                server 182.254.161.54:8089 weight=5;

    }

 

}

4.启动容器

  docker run --name mynginx -d -p 82:80 

  -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 

  -v /data/nginx/logs:/var/log/nginx

  -d docker.io/nginx

5.查看启动的容器

         docker ps