zoukankan      html  css  js  c++  java
  • docker简介及安装常用开发软件

    简介

    Docker 是一个开源的应用容器引擎,可以看做是一个轻量的、可移动的虚拟机,里面可以装载一个个的程序镜像,当把程序安装在docker以后,我们可以把docker移植到另外一台服务器,这样就避免了很多安装如redis,mysql等软件的重复性工作,以及不必重复部署项目到服务器,只需要移植docker即可。

    卸载旧版本

      yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-engine
    

    安装 Docker Engine-Community

    使用 Docker 仓库进行安装

    在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,可以从仓库安装和更新 Docker。

    设置仓库

    安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

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

    使用以下命令来设置稳定的仓库。

      yum-config-manager 
        --add-repo 
        https://download.docker.com/linux/centos/docker-ce.repo
    
    安装 Docker Engine-Community

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

    启动docker systemctl start docker

    查看docker版本号 docker-v

    配置阿里云镜像加速(CnetOS)

    https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

    mkdir -p /etc/docker
    tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["阿里云的加速地址"]
    }
    EOF
    systemctl daemon-reload
    systemctl restart docker
    

    docker安装mysql

    1.拉取mysql镜像 docker pull mysql:5.7
    2.创建容器

    docker run -p 3306:3306 --name mysql 
    -v /mydata/mysql/log:/var/log/mysql 
    -v /mydata/mysql/data:/var/lib/mysql 
    -v /mydata/mysql/conf:/etc/mysql 
    -e MYSQL_ROOT_PASSWORD=root 
    -d mysql:5.7
    

    意思是创建一个3306端口,名字为mysql的容器,
    -v表示mysql相关文件挂载到外部虚拟机的目录,也就是容器内的文件和虚拟机挂载目录的变化是一致的;修改/mydata/mysql/conf下的配置文件,能影响到容器内部的配置。
    -e 表示初始化root账户的密码为root
    -d 使用镜像mysql:5.7以后台模式启动一个容器

    3.创建mysql配置文件
    vi /mydata/mysql/conf/my.cnf

    [client]
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    

    重启 docker restart mysql
    进入mysql容器 docker exec -it mysql /bin/bash
    查看配置,会发现虚拟机修改的文件在这里被同步了 cat /etc/mysql/my.cnf

    docker安装redis

    1.拉取redis镜像 docker pull redis
    2.创建容器

    mkdir -p /mydata/redis/conf
    touch /mydata/redis/conf/redis.conf
    
    docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data 
    -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf 
    -d redis redis-server /etc/redis/redis.conf
    
    

    3.运行redis docker exec -it redis redis-cli
    4.开启 aof 持久化
    vi /mydata/redis/conf/redis.conf
    添加如下内容
    appendonly yes

    docker安装nginx

    1.拉取nginx镜像 docker pull nginx
    2.创建容器

    docker run -p 80:80 --name nginx 
    -v /mydata/nginx/html:/usr/share/nginx/html 
    -v /mydata/nginx/conf/nginx.conf:/etc/nginx/conf/nginx.conf 
    -v /mydata/nginx/log:/var/log/nginx/ 
    -v /mydata/nginx/conf.d:/etc/nginx/conf.d 
    -d nginx
    

    3.添加配置vim /mydata/nginx/conf/nginx.conf

    user  nginx;
    worker_processes  1;
    
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        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;
    
        keepalive_timeout  65;
    
        #gzip  on;
    
        include /etc/nginx/conf.d/*.conf;
    }
    

    vim /mydata/nginx/conf.d/default.conf

    server {
        listen       80;
        server_name  localhost;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
     }
    
    

    4.在/mydata/nginx/html中添加一个html页面显示

    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    </head>
    <body>
    <h1>hello docker!</h1>
    </body>
    </html
    
    

    然后重启nginx即可

    docker安装zookeeper

    1.拉取zookeeper镜像 docker pull wurstmeister/zookeepe
    2.运行zookeeper环境 docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
    3.进入zookeeper容器 docker exec -it zookeeper /bin/bash
    4.切换到bin目录 cd bin
    5.查看zookeeper是否启动 ./zkServer.sh status,出现 Mode:standalone 则表示成功了,然后输入exit退出即可

    docker安装kafka

    需要先安装zookeeper

    1.拉取kafka镜像 docker pull nginx
    2.运行kafka环境

    docker run --name kafka 
    -p 9092:9092 
    -e KAFKA_BROKER_ID=0 
    -e KAFKA_ZOOKEEPER_CONNECT=zookeeper的ip:2181 
    -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka的ip:9092 
    -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 
    -d wurstmeister/kafka
    

    第二行是映射的端口
    第三行是在kafka集群中,每个kafka都有一个BROKER_ID来区分自己,在这里设置
    第四行配置zookeeper管理kafka的路径
    第五行把kafka的地址端口注册给zookeeper
    第六行配置kafka的监听端口

    3.进入kafka容器 docker exec -it kafka /bin/bash
    4.创建主题
    /opt/kafka/bin/kafka-topics.sh --create --zookeeper zookeeper的ip:2181 --replication-factor 1 --partitions 1 --topic my_log
    5.查询创建主题
    /opt/kafka/bin/kafka-topics.sh --list --zookeeper zookeeper的ip:2181

    docker命令

    1.启动docker systemctl start docker

    2.关闭docker systemctl stop docker

    3.重启docker systemctl restart docker

    4.查看docker状态(是否启动) systemctl status docker

    5.查看docker版本号 docker-v

    6.查看docker安装的所有镜像 docker images

    7.docker开机自启动 systemctl enable docker

    8.显示所有的容器,包括未运行的 docker ps -a

    9.显示已启动的容器 docker ps

    10.进入容器 docker exec -it 容器名 /bin/bash

    11.docker启动时容器自启动 docker update --restart=always 容器名

    12.docker启动时取消容器自启动 docker update --restart=no 容器名

    13.删除镜像 docker rmi 镜像ID

    14.删除容器 docker rm 容器名

    15.开启容器 docker start 容器名

    16.关闭容器 docker stop 容器名

    17.重启容器 docker restart 容器名

    18.拉取镜像 docker pull 容器名

  • 相关阅读:
    【爬坑】在 IDEA 中运行 Hadoop 程序 报 winutils.exe 不存在错误解决方案
    【爬坑】Vim 文档加密 & 解密
    Maven 安装配置
    2014/11/23 条件查询
    2014/11/21
    2014/11/20 SQL简单命令
    2014/11/19 SQL Server基础
    7、数组
    6、循环、跳转、异常语句,string类、math、datetime
    5、循环语句、穷举
  • 原文地址:https://www.cnblogs.com/lixianguo/p/13254950.html
Copyright © 2011-2022 走看看