美文网首页
Docker笔记

Docker笔记

作者: 慵懒的阳光丶 | 来源:发表于2019-07-22 09:32 被阅读0次

    1.安装docker

    https://blog.csdn.net/wangmx1993328/article/details/81671880

    1、uname ‐r 查看内核版本
        Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
        Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
    2、安装docker 
        yum install docker 
    3、输入y确认安装 
    4、启动docker
     [root@localhost ~]# systemctl start docker
        启动后可以查看一下版本
     [root@localhost ~]# docker ‐v 
     Docker version 1.12.6, build 3e8e77d/1.12.6 
    5、开机启动docker
     [root@localhost ~]# systemctl enable docker 
    Created symlink from /etc/systemd/system/multi‐user.target.wants/docker.service to  /usr/lib/systemd/system/docker.service. 
    6、停止docker 
    systemctl stop docker
    

    2.常用命令

    • 搜索镜像
    docker search 关键词
      #eg: docker search redis
    
    • 拉取镜像
    docker pull 镜像名:tag
    #(:tag是可选的,tag表示标签,多为软件的版本,默认 是latest)
    # eg:     docker pull nginx(docker pull nginx:1.17.1)
    
    • 查询所有镜像
    docker images
    
    • 删除镜像
    docker rmi 镜像id
    
    • 查询所有容器
    docker ps
    
    • 查询启动的容器
    docker ps -a
    
    • 删除容器
    docker rm 容器id
    
    • 开启容器
    docker start 容器id
    
    • 关闭容器
    docker stop 容器id
    
    • 关闭所有容器
    docker stop $(docker ps -a -q)
    
    • 移除所有容器
    docker rm `docker ps -a -q`
    
    • 应对挂载权限拒绝
    --privileged=true
    
    • 将容器保存为镜像
    docker commit 容器名 镜像名
    eg:docker commit nginx nginx_img
    
    • 镜像备份:
    docker save -o xxx.tar xxx镜像
    eg: docker save -o nginx.tar nginx
    
    • 镜像的恢复
    可以通过以下指令将上面的备份镜像还原
    docker load -i nginx.tar
    
    • 宿主机向容器拷贝文件
    docker cp /ik-analyzer cc218e657b3f:/usr/share/elasticsearch/plugins
    
    • 容器向宿主机拷贝文件
    docker cp cc218e657b3f:/usr/share/elasticsearch/plugins   /ik-analyzer
    
    • 启动容器后再设置开机启动(xxx为镜像id)
    docker update --restart=always xxx
    

    3.进入容器

    3.1 查看容器id

    docker ps
    

    3.2 进入指定容器(以Nginx为例)

    docker exec -it 容器id /bin/bash 
    

    -d :分离模式: 在后台运行
    -i :即使没有附加也保持STDIN(标准输入) 打开,以交互模式运行容器,通常与 -t 同时使用;
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    image.png

    3.3查看容器内容

    ls - l


    容器内容

    3.4查看配置文件

    cd etc/nginx/conf.d/
    
    image.png

    3.5退出镜像

    exit


    image.png

    4. docker 挂载方式安装nginx举例

    4.0 拉取镜像

    docker pull nginx
    

    4.1创建挂载目录

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

    4.2以挂载方式启动容器

    docker run --privileged=true --name=nginx81 -p 81:80 -v /data/nginx/conf:/etc/nginx -v /data/nginx/html/:/usr/share/nginx/html -d nginx
    

    5.docker中安装nginx+fastdfs镜像

    参考:https://blog.csdn.net/tttzzztttzzz/article/details/86709318
    https://www.cnblogs.com/yanwanglol/p/9860202.html

    docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=192.168.43.128 -e WEB_PORT=80 -v ${HOME}/fastdfs:/var/local/fdfs -v /data/nginx/conf.d/default.conf:/usr/local/nginx/conf/nginx.conf.default -v /data/nginx/html/:/usr/local/nginx/html registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs
    

    6.docker安装ElasticSearch镜像

    #docker run -d --restart=always --privileged=true -v /data/elasticsearch/config:/usr/share/elasticsearch/config -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name elasticsearch 5acf0e8da90b
    docker run --restart=always  --name elasticsearch -d -e ES_JAVA_OPTS="-Xms256m -Xmx256m"  -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 01e5bee1e059
    

    指令说明:
    1.-e ES_JAVA_OPTS="-Xms256m -Xmx256m" :如果不指定的话会es会占用比较大的内存
    2.-p 9200:9200 -p 9300:9300 :9200为es端口号,9300为集群通信端口号
    3.5acf0e8da90b : 镜像id
    安装后测试,出现以下结果代表安装成功(ip写自己的!!)

    图片.png

    6.1 kibana下载地址

    https://www.elastic.co/cn/downloads/past-releases#kibana

    kibaba的docker镜像安装

    docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.176.111:9200 -p 5601:5601  -d kibana:7.4.2
    

    6.2 elasticsearch-analysis-ik下载地址

    https://github.com/medcl/elasticsearch-analysis-ik/releases

    6.3 安装elasticsearch-head

    https://www.cnblogs.com/szwdun/p/10663813.html

    6.4 Elasticsearch 配置用户名和密码

    https://blog.csdn.net/weixin_43315211/article/details/99677072
    https://blog.csdn.net/qq_29553063/article/details/95014006

    6.5 elasticsearch-head 以密码访问

    修改配置文件elasticsearch.yml,增加
    http.cors.allow-headers: Authorization

    访问head时,url如下所示:
    http://192.168.100.100:9100/?auth_user=elastic&auth_password=changeme

    6.6 Elasticsearch 6.x head 请求头 Content-Type 设置

    https://blog.csdn.net/A_Story_Donkey/article/details/84135475

    7.docker安装rabbitmq镜像(docker pull rabbitmq:management)

    docker run -d  --restart=always --name rabbitmq -p 5672:5672 -p 15672:15672 e58249ecc163
    

    说明:
    -p 15672:15672 图形化界面访问的端口号

    8.docker安装redis

    docker run -d --restart=always --name redis -p 6379:6379 redis --requirepass "mypassword"
    

    9.docker安装MongoDB

    docker run --restart=always --privileged=true -p 27017:27017 -v /tmp/db:/data/db -d mongo
    

    启动MongoDB容器后,其配置文件中未只允许本地访问,我们需要修改为允许远程访问

    #进入容器
    docker exec -it f9ddebfbd1f1 /bin/bash
    
    #更新源
    apt-get update
    # 安装 vim
    apt-get install vim
    # 修改 mongo 配置文件
    vim /etc/mongod.conf.orig
    
    #注释掉`# bindIp: 127.0.0.1` 或者改成`bindIp: 0.0.0.0` 即可开启远程连接
    
    进入容器后在执行了mongo指令后就可以使用MongoDB的常用指令了
    mongo
    

    创建用户

    # 进入 admin 的数据库
    use xc_cms
    # 创建管理员用户
    db.createUser(
       {
         user: "root",
         pwd: "root",
         roles: [ { role: "dbAdmin", db: "xc_cms" } ]   
       }
     )
     # 创建有可读写权限的用户. 对于一个特定的数据库, 比如'demo'
     db.createUser({
         user: 'test',
         pwd: '123456',
         roles: [{role: "read", db: "demo"}]
     })
    

    设定对用户认证

    db.auth("root","root");
    

    10.docker安装mysql

    docker run -d  --restart=always --name=mysqldb -p 3306:3306 --env="MYSQL_ROOT_PASSWORD=root" centos/mysql-57-centos7
    

    10.1 docker安装mysql实例,并新建用户和外网连接

    一:
    docker search mysql  查找mysql镜像
    
    docker pull mysql  拉取镜像
    
    docker images  查看已拉取的镜像
    docker images |grep mysql   查看已拉取的镜像
    
    docker ps  查看容器启动情况
    
    
    使用mysql镜像
    运行容器
    docker run --name mysqlkaige -p 3309:3306 -e MYSQL_ROOT_PASSWORD=chenkai! -d  镜像id
    
    
    #进入容器
    docker exec -it mysql容器id bash
    
    #登录mysql
    mysql -u root -p 
    
    #输入密码:chenkai!
    
    #添加远程登录用户
    CREATE USER 'kaidd'@'%' IDENTIFIED WITH mysql_native_password BY 'chenkai123!';
    GRANT ALL PRIVILEGES ON *.* TO 'kaidd'@'%';
    
    退出mysql: ctrl+d
    
    退出容器: ctrl+P+Q
    
     
    
    启动某个容器:docker start 容器id
    
    停止某个容器:docker stop 容器id
    
    

    11.docker安装logstash

    https://blog.csdn.net/qq_42082701/article/details/98469545
    https://blog.csdn.net/sgrrmswtvt/article/details/88813571

    12.常见问题

    容器中无法使用vim

    1.更新来源
    apt-get update(在docker里安装软件的时候报这个错误,是因为你用centos的镜像,需要用yum代替apt-get)
    2.安装vim
    apt-get install vim

    image.png
    3.docker中maven找不到本地依赖
    https://www.cnblogs.com/yy-cola/p/9664598.html

    相关文章

      网友评论

          本文标题:Docker笔记

          本文链接:https://www.haomeiwen.com/subject/srwzkctx.html