docker简介
2019-02-14 14:47
134 查看
Docker简介
Dockers是一个
开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化,容器是完全使用的沙箱机制,相互之间不会有任何借口。 Docker的组成:
- DockerClient客户端
- Docker Daemon守护程序
- Docker Images镜像
- DockerContainer容器
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。
Docker | 面向对象 |
---|---|
容器 | 对象 |
镜像 | 类 |
安装
系统环境:
win10 pro
前提:
开启Hyper-V【注:开启Hyper-V会导致VMware等虚拟机不能运行,不兼容】
在windows上运行docker其实是在win的linux子系统上运行
安装Toolbox,下载地址:toolbox下载地址
双击下载的Docker for Windows install安装文件,一路next,点击Finish完成安装。
安装完成通知栏出现
,表示docker正在运行!
可以在命令行执行docker version来查看版本号,docker run hello-world来载入测试镜像测试。
鉴于国内网络问题,后续拉取
Docker镜像非常缓慢,我们可以配置加速器来解决,我使用的是网易的镜像地址:
http://hub-mirror.c.163.com
新版的 Docker 使用
/etc/docker/daemon.json(Linux)或者
%programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。
请在该配置文件中加入(没有该文件的话,请先建一个):
{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }
注:如果是linux环境,可以输入docker查看是否安装了docker(Ubuntu内核高于3.10才支持docker)
Ubuntu查看内核是否高于3.10:uname -r
获取最新docker安装包:wget -qo- https://get.docker.com/ | sh
Dockers 使用
1. Docker hello world
$ docker run ubuntu:15.10 /bin/echo "Hello world" Hello world
各个参数解析:
docker
:Docker的二进制执行文件。run
:与前面的docker组合来运行一个容器ubuntu:15.10
:指定要运行的镜像,docker首先从本地查找镜像,不存在则从镜像仓库docker hub下载公共镜像。/bin/echo "Hello world"
:在启动的容器里执行的命令
运行交互式容器
通过docker两个参数-t -i,让docker运行的容器接收输入输出
$ docker run -i -t ubuntu:15.10 /bin/bash root@dc0050c79503:/#
-t
:在新容器内指定一个伪终端或终端-i
:允许你对容器内的标准输入(STDIN)进行交互
交互后可直接输入命令查看容器
可以在容器内运行命令
cat /proc/version和
ls分别查看当前系统的版本信息和当前目录下的文件列表
我们可以通过运行
exit命令或者使用
CTRL+D来退出容器
启动容器(后台模式)
$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" 2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
-d:以守护进程方式运行(后台)
这个长字符串叫容器ID,对每个容器来说都是唯一的,我们看他通过容器ID来查看对应的容器发生了什么。
$ docker ps
CONTAINER ID:容器ID
NAMES:自动分配的容器名称
在容器内使用docker logs命令,查看容器内的标准输出
$ docker logs (容器IDor 自动分配的名字)
停止容器
$ docker stop (可选:写ID或name)
请求帮助:
docker(没错,只输入这个单词即可显示help信息) docker command --help(更深入一些) docker stats --helpdocker容器中运行一个Python Flask应用运行一个WEB应用:
docker pull training/webapp #载入镜像 docker run -d -P(将容器的网络端口映射到主机上) training/webapp python app.py docker ps(会发现多了端口的信息(docker默认开放了python flask的端口被映射)) docker run -d -p 5000:5000(-p参数可指定) training/webapp python app.py docker ps(查看端口是否被映射到正确位置) 可单独直接查看端口信息的命令:docker port (ID或名字)查看WEB应用程序日志:
docker logs -f(类似linux的tail -f) (ID或名字) 查看web应用的进程: docker top determined_swanson 检查WEB应用程序:docker inspect determined_swanson(会返回一个JSON文件记录着Dokcer容器的配置和状态信息) 停止WEB应用程序:docker stop determined_swanson 重启WEB应用程序:docker start determined_swanson docker ps -l(查询最后一次创建的容器) docker restart(对正在运行的程序可重启) 移除WEB应用容器:docker rm determined_swanson(删除容器时,容器必须时停止状态)查看本地主机上的镜像:docker images
指定15.10的ubuntu运行容器:dockerrun -t -i ubuntu:15.10 /bin/bash (不指定一个镜像的版本标签的话,默认使用ubuntu:lastest镜像)其他
获取新的镜像:docker pull ubuntu:13.10 更新镜像(需要创建一个新的容器):docker run -t -i ubuntu:15.10 /bin/bash 在内部:apt-get update 然后:exit 创建容器副本:docker connit -m(提交描述的信息)="hasupdate" -a(指定镜像作者)="runoob" e218edb10161(容器ID) runoob/ubuntu:v2(要创建的目标镜像名) 设置镜像标签:docker tag 860c279d2fec(容器ID)runoob/centos:dev -P :是容器内部端口随机映射到主机的高端口。 -p : 是容器内部端口绑定到指定的主机端口。
上面的例子中,默认都是绑定
tcp端口,如果要绑定
UDP端口,可以在端口后面加上
/udp
当我们创建一个容器的时候,docker会自动对它进行命名。另外,我们也可以使用–name标识来命名容器,例如:
docker run -d -P --name runoob training/webapp python app.py
Docker常用命令大全
相关文章推荐
- Docker存储驱动之Device Mapper简介
- 测试/生产环境下的docker使用简介
- Docker 简介
- docker实战 - docker简介
- Docker 编排利器-Compose简介
- dockerfile简介
- docker的简介和Windows下如何安装docker
- Docker EE/Docker CE简介与版本规划
- docker简介和安装
- Docker简介及在CentOS7上进行安装部署
- docker简介
- Docker简介与简单使用 | 技术头条
- Docker技术剖析--docker的详细简介及安装
- Docker系列:第一讲.Docker简介与安装
- 【docker】简介
- Docker简介和安装(一)
- Azure支持docker简介以及使用指南
- Docker完全解析 一、Docker简介
- Docker简介与入门
- Docker存储驱动之OverlayFS简介