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
docker基本的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- Docker 第一篇--初识docker
已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...
- 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)
环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...
- docker for mac 学习记录
docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...
- scrapy爬虫docker部署
spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...
- [原][Docker]特性与原理解析
Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...
- 开发者的利器:Docker 理解与使用
困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- 微服务与Docker介绍
什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...
随机推荐
- summernote图片上传功能保存到服务器指定文件夹+php代码+java方法
1.summernote富文本编辑器 summernote是一款基于bootstrap的富文本编辑器,是一款十分好用的文本编辑器,还附带有图片和文件上传功能. 那么在我们网站中想吧这个图片上传到服务器 ...
- CodeForces 740D Alyona and a tree
倍增,延迟标记. 考虑一个$u$给他的哪几个祖先$v$贡献了$1$.越往上$dis(v,u)$越大,找到最远的一个还满足条件的$v$,$v$到$u$的父亲这条链上的答案都$+1$.延迟标记一下,然后从 ...
- centos7中安装wdcp管理系统(用于网站搭设)
首先我们进入官网看下安装方法https://www.wdlinux.cn/wdcp/install.html 可以看到,实际上有两张安装方式,一种是源码进行安装,还有一种是RPM包安装,显然第二种安装 ...
- VM虚拟机安装kali linux
点击文件,新建虚拟机新建一个虚拟机 点击后出现这个,选择典型 点击下一步,然后选择安装程序光盘映像文件(iso),然后浏览,找到你下载的镜像 点击下一步,选择linux,选择最高Debian版本的,6 ...
- noip 2016 day1 T1玩具谜题
题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉 ...
- CodeForces - 1000D Yet Another Problem On a Subsequence
题面在这里! 好智障的一个dp啊,一段开头的数字相当于下面要跟多少个数,直接滚动数组dp就行了... #include<bits/stdc++.h> #define ll long lon ...
- 【Kruskal】Slim Span
[Uva1395]Slim Span 题目略…… 试题分析:codevs1001舒适的路线上加一个判一下连通性就好,顺便把除改成减 代码: #include<iostream> #incl ...
- 【暴力】hdu6121 Build a tree
给你n,K,让你构造出一颗n个结点的完全K叉树,求所有结点子树大小的异或和. 先把n号结点到根的路径提取出来单独计算.然后这条路径把每一层分成了左右两部分,每一层的左侧和其上一层的右侧的结点的子树大小 ...
- 【并查集】Gym - 101128B - Black Vienna
有26张牌(A~Z),其中三张被拿走了.其余23张被分发给了两个人.给你m次调查结果,一次调查结果是对其中一个人询问一对牌,他会告诉你他有这对牌的几张(0~2).问你有多少种被拿走的牌的组合. 三重循 ...
- 【后缀自动机】hihocoder1449 后缀自动机三·重复旋律6
解题方法提示 小Hi:上次我们已经学习了后缀自动机了,今天我们再来解决一个用到后缀自动机的问题. 小Ho:好!那我们开始吧! 小Hi:现在我们要对K=1..length(S)求出所有长度为K的子串中出 ...