• 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

  • 相关阅读:
    51nod1370 排列与操作
    2019-11-20-Github-给仓库上传-NuGet-库
    2019-11-20-Github-给仓库上传-NuGet-库
    2019-6-5-WPF-隐藏系统窗口菜单
    2019-6-5-WPF-隐藏系统窗口菜单
    2019-8-31-AutoHotKey-用打码的快捷键
    2019-8-31-AutoHotKey-用打码的快捷键
    2019-4-10-win10-uwp-自定义标记扩展
    2019-4-10-win10-uwp-自定义标记扩展
    2018-9-3-C#-const-和-readonly-有什么区别
  • 原文地址:https://www.cnblogs.com/itfenqing/p/8903540.html
Copyright © 2020-2023  润新知