什么是Docker?

什么是Docker?

Docker 是基于Go语言实现的开源容器项目。利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化。它是内核级的虚拟化。期望达到使项目运行环境“一次封装,到处运行的目的”。

利用docker创建的运行环境叫做docker容器,容器是通过docker镜像创建的,docker镜像文件可以放在私有仓库中也可以放在共有仓库中。最大的公有仓库是官方Docker Hub

Docker怎么用?

安装docker

安装对应版本的docker之后,就可以使用docker了.官方安装
需要说明的是Docker的核心底层技术是LXC(Linux Container),win/mac中安装的都是客户端,还是要借助vm中的linux虚拟机才能工作。
通过阿里云镜像加速器安装

对于10.10.3以下的用户 推荐使用Docker Toolbox
Mac安装文件:[http://mirrors.aliyun.com/docker-toolbox/mac/docker-toolbox/](http://mirrors.aliyun.com/docker-toolbox/mac/docker-toolbox/)

对于10.10.3以上的用户 推荐使用Docker for Mac
Mac安装文件:[http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/](http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/?spm=5176.8351553.0.0.6eaf1991mMotLl)
对于Windows 10以下的用户,推荐使用Docker Toolbox
Windows安装文件:[http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/](http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/)

对于Windows 10以上的用户 推荐使用Docker for Windows
Windows安装文件:[http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/](http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/)

开始使用docker

查看当前版本

docker version

查看本地所有镜像文件

docker images

获取云中ubuntu18的镜像

docker pull ubuntu:18.04

创建一个ubuntu18的容器,并且运行容器。-i 表示标准模式;-t 表示是否分配一个伪终端,默认false; -rm 表示容器退出后是否自动删除,默认为false;

docker run -it -rm ubuntu:18.04

启动一个nginx容器命名为local_nginx,并且映射到80端口。在浏览器中0.0.0.0:80可以访问nginx。-d 表示后台运行,-p 表示端口映射 hostport:containerport;--name 表示容器名字。

docker run -d -p 80:80 --name local_nginx nginx

查看运行的容器

docker ps
其他各种常用命令

docker tag xxx tagname 镜像文件加标签;
docker search xxx 查找官方镜像;
docker rmi xxxID/xxxname 删除镜像文件;
docker rm xxx 删除容器;
docker push xxx;上传镜像;
docker import xxx 导入镜像;
docker stop xxx 终止容器;
docker pause xxx 暂停容器;
docker unpause xxx 恢复容器;
docker kill xxx 强制杀死容器;
docker attach xxxID/xxxname 进入后台运行的容器;
docker container inspect xxx 查看一个容器;
docker top xxx 查看容器内进程;
docker stat xxx 查看容器内cup使用情况;
docker container port test 查看容器端口;
docker commit origin_container_id new_image 执行一些新的操作后添加容器到另外一个镜像/保存版本号
等等

对docker 数据卷的管理

数据卷指容器与主机的共享/映射目录
默认是 /var/lib/docker/volumes,也可指定路径
创建一个容器ubuntu命名为dbdata,放在数据卷dbdata里面

docker run -it -v /dbdata --name dbdata ubuntu

通过镜像training/webapp创建一个后台运行的容器命名为web,并在其中运行python app.py。自动分配端口号,把容器中webapp映射到主机/opt/webapp 位置。

docker run -d -P --name web --mount type=bind,source=/webapp,destination=/opt/webapp training/webapp python app.py
容器互联

创建一个新的容器web,让其和容器namedb互联,namedb是由ubuntu镜像生成的,在里面运行了bash bash.sh,两个容器中安装了ssh,就可以互相登录了

docker run -d -P --name web --link namedb:aliasdb ubuntu bash bash.sh
用dockerfile创建容器

复杂的能运行开发环境的容器通常是用dockerfile生成的。
一个简单的dockerfile

#设置继承镜像
FROM ubuntu:18.04
#安装ssh
RUN apt-get install -y openssh-server
RUN mkdir -p /var/run/sshd
RUN mkdir -p /root/.ssh

ADD authorized_keys /root/.ssh/authorized_keys
ADD run.sh /run.sh
RUN chmod 755 /run.sh

#开放端口
EXPOSE 22

#设置自启动命令
CMD ["run.sh"]

在dockerfile 所在目录 build 一个image文件

docker build -t my-lamp-image

通过镜像文件创建一个容器

docker run -p 8080:80 --name my-lamp my-lamp-image

docker machine

docker machine可以高效的管理多个主机集群
docker-machine create --driver xxx args1 args2 instance 创建一个主机
docker-machine ls 查看所有主机
docker-machine ip instance 查看某个主机的ip
docker-machine stop instance 停止某个主机的ip
docker-machine kill instance 杀死某个主机的ip

docker compose

通过模板文件docker-compose.yml部署复杂环境
docker-compose build
docker-compose up
docker-compose down

docker swarm

进入swarm模式集群管理平台
docker swarm init xxx --advertise-addr ip 初始化一个集群
docker swarm join --token xxx ip:port 加入一个集群
docker node ls

Docker和Vagrant有什么区别?

查看什么是Vagrant

Docker 相关资源

一小时Docker

Docker 菜鸟教程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容