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


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 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 宿主机目录(文件):容器内目录(文件)

  

 

 

 

2.创建并挂载

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

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

  挂载到多个数据卷:

 

 

 

 

数据卷容器

多容器进行数据交换

  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

    

6.外部工具连接mysql

   

 

 

 

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

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

 

7.导出docker中MySQL的数据

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

   

 

 

 

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文件

详解:https://www.cnblogs.com/kreo/p/4423362.html

5.运行redis

         Docker exec –it redis容器id redis-cli

  

 

 

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

   

 

   

 

 

 

 

 

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

 


作者:竹叶坏水色,发布于:2020/05/11
原文:https://www.cnblogs.com/zhuye2333/p/12844935.html