zoukankan      html  css  js  c++  java
  • docker学习

    基础命令

    docker pull 镜像名称
    docker search 查找远程镜像仓库
    已有镜像:docker images
    运行镜像 docker run -d (非阻塞) -p(指定端口映射 80:80) 镜像名称
    docker run -d -p 80:80 --name mynginx -v(映射,外部文件修改就可以影响内部文件修改) ‘pwd’:/usr/share/nginx/html
    当前容器状态 docker ps
    进入容器: docker exec -it 容器id (eg-》nginx: docker exec -it 98jj bash)
    delete 容器 docker rm -f 容器id
    提交容器成为一个新的镜像 docker commit 容器id 镜像名称

    Dockerfile方式

    dockerfile文件 vim dockerfile
    docker build -t m2(镜像名称) ./

    docker 镜像保存为tar文件
    docker save m2 > 1.tar
    docker 删除镜像 docker rmi 镜像名 需要讲已经运行的该镜像容器删除掉

    docker load < tar文件名 加载镜像,到自己的镜像中

    生产环境使用
    docker run -dit --name mynginx nginx
    docker run -dit --link mynginx:mynginx alpine

    dockercomposer 方式写。yml文件 集成nginx php mysql
    实际使用中是先(比如git项目管理)项目写好dockercompose在项目代码中, 然后项目中的人运行此yml文件,集成以及映射项目代码,生成一个统一的环境。

    docker 所需例子

    安装 centos

    docker pull centos:centos7
    
    docker images
    
    docker run -itd --name centos-test centos:centos7
    
    docker exec -it centos-test /bin/bash
    

    准备镜像

    首先当前目录可以先创建好镜像 docker images (nginx php docker.io/mysql docker.io/centos)

    编写docker-compose.yml

    当前目录下docker-compose.yml

    创建本地挂载的目录

    nginx目录
    mkdir -p /data/nginx/{conf,html,logs}

    mysql目录
    mkdir -p /data/mysql/{conf,data}

    由于mysql容器的/etc/mysql/my.cnf里的配置内容为:(注意感叹号)

    !includedir /etc/mysql/conf.d/
    !includedir /etc/mysql/mysql.conf.d/
     
    #注意!includedir /etc/mysql/conf.d/包含/etc/mysql/conf.d/目录下的*.cnf配置内容
     
    #实现验证为# cat /data/mysql/conf/my.cnf 
    [mysqld]
    skip-grant-tables
    启动mysql容器可以实现在mysql容器内直接用mysql命令登录数据库
    

    用docker-compose运行并管理lnmp环境

    docker-compose命令必须在存在docker-compose.yml目录下输入:启动lnmp
    docker-compose up -d

    常用的dockercompose操作

    docker-compose up -d #后台docker-compose.yml所有容器

    docker-compose down #关闭docker-compose.yml所有容器

    docker-compose ps #查看所有容器的状态

    docker-compose restart 容器名 #重启启动某个容器

    更多的docker-compose命令的话,请查看docker-compose -h

    验证

    [root@dingzhi ~]# vi /data/nginx/html/test.php
    <?php
        echo "Hello lituxiu<br/>";
        echo "Hello PHP<br/>";
        $conn = mysqli_connect("mysql","test","123456");
        if(!$conn){
            echo "连接数据库失败";
        }else{
            echo "连接数据库成功";
        }
        phpinfo();
    ?>
    

    浏览器访问:http://192.168.21.140/test.php

    参考网址

    https://blog.csdn.net/lituxiu/article/details/89338569

    docker安装centos

     1:镜像:docker pull hub.c.163.com/public/centos:7.2-tools
     2.创建容器: docker run -d -p 5000:22 --name centos-test --privileged=true hub.c.163.com/public/centos:7.2-tools /usr/sbin/init
    3:进入容器:docker exec -it centos-test /bin/bash
    4:修改密码:passwd root
    5:然后就可以连接终端5000端口
    

    docker安装lnmp

    镜像:docker pull winstonpro/lnmp
    源不行可以换源 vi /etc/docker/daemon.json
    "registry-mirrors": ["https://758dkarj.mirror.aliyuncs.com"]
    
    systemctl daemon-reload
    systemctl restart docker
    
    docker run -d -p 50001:80 -p 50002:443 -p 50003:3306 -p 50004:22  --name lnmp  winstonpro/lnmp
    
    直接访问ip:50001端口  
    

    当存在docker容器不符合需求需要在基础上加一些东西的时候

    比如端口映射少了一些,目录映射少了一些,可以先把容器保存为镜像,然后再次使用新镜像添加-p,-v 映射新的端口和目录。如此保持原本容器不变
    
    docker commit -a "king西阳" -m "a new image" [容器名称或id] [打包的镜像名称]:[标签]
    常用OPTIONS说明:
    -a :提交的镜像作者
    -c :使用Dockerfile指令来创建镜像
    -m :提交时的说明文字
    -p :在commit时,将容器暂停
    
    查看宿主机端口是否和容器内端口映射成功,在容器外执行
    netstat -an |grep 宿主机的映射端口
    

    服务器

    安装docker
    

    无网服务器安装部署整个环境

    在有网的服务器下面,使用docker,将环境配置好,项目放置部署好,打包容器成自己的镜像(commit),然后(save)为一个安装包tar,
    在无网环境下,ftp等 传入docker安装包以及此镜像tar包,docker load 此tar包称谓新的镜像,  run 此镜像指定一些端口 设置    就成功部署环境。
    高山仰止,景行行止,虽不能至,心向往之。
  • 相关阅读:
    vue-cli脚手架工具构建&初始化vue项目
    2020/05/17 Github加速-DNS配置
    同时将本地git仓库提交到gitee和github
    git远程仓库在本地看不到&push 到远程仓库失败的解决方案
    stylus的使用-变量和函数
    webpack使用4-HRM热替换&SourceMap&解析es语法
    webpack使用3-plugin插件的使用
    webpack使用2-常用的几个loader的使用
    webpack基本使用
    spring框架里面的注入?
  • 原文地址:https://www.cnblogs.com/yudubujue/p/15222396.html
Copyright © 2011-2022 走看看