zoukankan      html  css  js  c++  java
  • docker基本

    安装(centos):

    Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
    Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

    yum install epel-release
    yum install -y docker-io
    

      

    一.docker自身命令

    docker info	// 查看信息
    docker version	//查看版本
    service docker restart/start/stop/reload
    

      

    二.docker镜像命令

    docker build --rm=true . 构建镜像
    docker pull ${IMAGE} 安装镜像
    docker images 显示已经安装的镜像
    docker images --no-trunc 显示已经安装镜像的详细内容
    docker rmi ${IMAGE_ID} 删除指定镜像
    docker save -o ${要保存的文件名} ${要保存的镜像} //保存镜像为文件
    docker load --input ${文件} 或者 docker load < ${文件} //载入镜像
    docker images|grep none|awk '{print $3 }'|xargs docker rmi //删除没有标签的镜像
    docker rmi $(docker images | awk '/^<none>/ {print $3}')
    

      

    三.docker容器命令

    docker run 运行容器
    docker ps 显示正在运行的容器
    docker ps -a 显示所有的容器
    docker ps -l 显示最近创建的容器
    docker stop ${CID} 停止指定容器
    docker start ${CID} 启动指定容器
    docker restart ${CID} 重启指定容器
    docker stop docker ps -q 停止所有正在运行的容器
    docker rm ${CID} 删除指定容器
    docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${CID} 显示指定容器的IP
    docker attach ${CID} 进入容器
    docker exec -it ${CID} /bin/bash 进入容器打开一个shell,在容器中exit后,容器不会停止
    docker commit ${CID} 新的镜像名称 //保存对容器的修改为新的镜像
    docker export ${CID或名称} > ${导出文件名} //导出容器为镜像
    docker load < ${导入文件名} //导入文件为镜像
    

      

    四.运行及停止容器

    1.docker run -p80:80 --name nginx -v /data:/usr/share/nginx/html -v /docker/nginx/conf.d:/etc/nginx/conf.d --privileged=true -d nginx -g "daemon off;"

    -d为后台运行
    -p为宿主机端口和容器端口的映射
    -v为宿主机目录和容器目录的映射
    --privileged 为容器内的root拥有真正的root权限
    --name 容器名称,自定义
    nginx 为镜像名称

    2.停止容器
    docker stop ${CID/name}

    3.启动容器
    docker stop ${CID/name}

    3.重启容器
    docker restart ${CID/name}

    五.vsftpd

    1.

    docker pull fauria/vsftpd
    

      

    2.启动容器

    docker run -d -v /data:/home/vsftpd 
    -p 20:20 -p 21:21 -p 21100-21110:21100-21110 
    -e FTP_USER=USERNAME -e FTP_PASS=PASSWORD 
    -e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 
    --name vsftpd --restart=always fauria/vsftpd
    

      

    六.制作一个centos的apache+php5.6的镜像

    1.拉取centos官方6.9版本
    docker pull centos:6.9

    2.启动centos

    docker run --net=host -d -name centos6.9 centos:6.9
    

      

    --net=host是让容器使用宿主机的网络环境

    3.安装apache和php5.6,此处略去;
    在容器内修改httpd.conf,增加

    Include vhosts/*.conf
    

      


    在/etc/httpd/下新建vhosts文件夹

    4.将容器保存为新的镜像
    docker commit centos6.9 centos6-apache2-php5.6

    5.以新镜像来启动容器

    docker run -v /www/site1:/var/www/html -v /httpd/vhosts:/etc/httpd/vhosts -p 80:80 --name apache -d -i -t centos6-apache2-php5.6 /bin/bash
    

      

    注:
    -v /httpd/vhosts:/etc/httpd/vhosts 是将apche的配置文件放到宿主机的/httpd/vhosts

    在/httpd/vhosts我们新建一个site.conf

    <VirtualHost *:80>
    DocumentRoot /var/www/html/public
    </VirtualHost>
    

      

    七.mysql

    1.拉取mysql5.6.35

    docker pull mysql:5.6.35
    

      

    2.启动镜像

    docker run --name mysql5.6 -p 3306:3306 -v /mysql/datadir:/var/lib/mysql -v /mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=密码 -d mysql:5.6.35
    

      

    -v /mysql/datadir:/var/lib/mysql 将数据文件放入宿主机目录/mysql/datadir下

    -v /mysql/conf.d:/etc/mysql/conf.d 将配置文件放入宿主机目录/mysql/conf.d下

    在宿主机上建立文件/mysql/conf.d/my.cnf

    [mysqld]
    slow_query_log = 1
    

      

    八.一些问题

    1.vsftpd在过一个阶段后状态变为dead,无法删除,只能强制删除

    docker rm -f $(docker ps -a -q -f status=dead)
    

      

    2.制作的新镜像centos6-apache2-php5.6,在每次运行容器后,还需要进入容器去启动apache,我们在容器中新建一个脚本文件/init/httpd.sh

    #! /bin/bash
    /etc/init.d/httpd start
    /bin/bash
    

      

    赋予执行权限

    chmod +x /init/httpd.sh
    

      

    保存容器为新镜像

    docker commit centos centos6-apache2-php5.6
    

      

    运行一个容器

    docker run -p 8010:80 -itd -v /www/phpmyadmin:/var/www/html --name phpmyadmin2 centos6-apache2-php5.6  /init/httpd.sh
    

      

    /init/httpd.sh 这是镜像中的脚本文件

    docker加速器:

    daocloud.io

  • 相关阅读:
    mysql索引
    springboot mybatis 后台框架平台 shiro 权限 集成代码生成器
    java 企业网站源码模版 有前后台 springmvc SSM 生成静态化
    java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
    activiti工作流的web流程设计器整合视频教程 SSM和独立部署
    .Net Core中的ObjectPool
    文件操作、流相关类梳理
    .Net Core中的配置文件源码解析
    .Net Core中依赖注入服务使用总结
    消息中间件RabbitMQ(一)
  • 原文地址:https://www.cnblogs.com/itfenqing/p/8903540.html
Copyright © 2011-2022 走看看