Docker 实战笔记(有图有代码哟!)

Docker的安装与配置

CentOS


前提条件

目前,CentOS 仅在发行的版本中的内核支持Docker
Docker 运行在CentOS 7 上要求系统为64位,系统内核版本在3.10以上。本次测试运行使用的是 centOS 7.2 64位的系统版本。
使用代码 uname -r即可查看系统内核版本

Docker软件已经包括在默认的CentOS-Extras软件源中。因此想要安装Docker,只需要运行下面的yum命令:

yum install docker-io -y

直接yum安装,查看版本来看docker是否安装完成

docker -v

启动docker服务

service docker start

设置开机自启动

chkconfig docker on

由于国内访问 Docker Hub 比较慢,可以使用腾讯云提供的国内镜像源,加速访问 Docker Hub 。依次执行以下命令:

echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker

systemctl daemon-reload

service docker

Ubuntu


Docker 要求Ubuntu 系统的内核版本高于3.10,通过uname -r命令查看当前的内核版本
本次测试使用的Ubuntu 系统为Ubuntu Server 16.04.1 LTS 64位

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

验证一下Docker 有没有安装成功

docker -v

安装成功,因为要使用docker hub 的原因,在这里我们需要添加一个国内的镜像,这里我们使用阿里云的。修改daemon配置文件/etc/docker/daemon.json来使用加速器

1.  sudo mkdir -p /etc/docker
2.  sudo tee /etc/docker/daemon.json <<-'EOF'
3.  {
4.          "registry-mirrors": ["https://dmmxhzvq.mirror.aliyuncs.com"]
5.  }
6.  EOF
7.  sudo systemctl daemon-reload
8.  sudo systemctl restart docker

Windows


Docker在Windows中需要使用虚拟机才能够运行,目前支持的版本是Windows 10以及Windows server 2016。在Windows 7中进行安装测试,无法安装。截图如下。

docker 的基本操作命令

删除


杀死所有正在运行的容器

docker kill $(docker ps -a -q)

删除所有已经停止的容器

docker rm $(docker ps -a -q)

删除所有未打dangling 标签的镜像

docker rmi $(docker images -q -f dangling=true)

通过镜像的id来删除指定镜像

docker rmi <image id>

删除所有镜像

docker rmi $(docker images -q)

查看

查看正在运行的容器

docker ps

查看所有的容器

docker ps -a

查看本地的所有镜像

docker images -a

查看本地镜像中REPOSITORY为centos的镜像

docker images centos

配置镜像

下载镜像

docker pull [image name]:[tag]

登录到仓库(默认为docker hub)

docker login -u [用户名] -p [密码]

登出仓库

docker logout

将本地镜像上传到镜像仓库(需要先登录到仓库)

docker push [image name]:[tag]

容器

强制删除容器db01,db02(-f:通过SIGKLL信号强制删除一个运行中的容器)

dokcer rm -f db01、db02

删除容器db01 ,并删除容器挂载的数据卷(-v:删除与容器关联的卷)

dokcer rm -v db01

实践中遇到的错误

1.镜像无法删除


docker rmi $(docker images -q)

理论上应该可以删除全部镜像,但是实际操作中却出现了问题。于是只能单独进行删除

docker rmi <image id>

如果有image id相同,会出现以下错误

Error response from daemon: conflict: unable to delete d231ef002eba (must be forced) - image is referenced in one or more repositories

那么可以使用name:tag进行删除.

docker rmi <image name>:<tag>

问题即可解决

2.job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.和Cannot connect to the Docker daemon. Is the docker daemon running on this host?的问题解决

起因:腾讯云服务器我给他重启了之后,发现docker 命令就一直报 Cannot的错误。

这可能有两个原因:
1.docker服务没有启动;
2.docker没有相关的权限;
原因2呢,用sudo取得权限就行。
但是这次的问题是原因1,那么就启动呗

start docker service

但是就得到了下列这样的问题

那怎么解决呢,首先看一下/etc/docker/daemon.json这个文件存不存在,如果存在那就看看里面的内容出了什么问题。

cd /etc/docker
vim daemon.json

然后你把下面的代码放进去,就可以啦

{ "storage-driver": "devicemapper" }

如果daemon.json文件包含格式不正确的JSON,Docker将无法启动。

然后重启一下docker

service docker start

ok!运行没得问题咯。

实例1:wordpress+mysql

安装相关镜像

从镜像库(默认是Docker hub )中查询是否有镜像文件

docker search mysql

将所需镜像文件下载到本地

docker pull mysql

查询是否成功

docker images

好的本地库中有了mysql镜像,再下载一个wordpress镜像

先启动mysql

docker run --name lir_mysql -e MYSQL_ROOT_PASSWORD=lir123 -d mysql

--name lir_mysql 给容器命名为lir_mysql
-e 设置环境变量
-d 后台运行容器,并返回容器ID

先检查一下有没有运行成功

docker ps

好的,运行成功了!再启动wordpress和mysql链接一下

docker run --name lir_wordpress --link lir_mysql:mysql -p 8080:80 -d wordpress

--link添加链接到另一个容器
-p默认将容器的80端口映射到主机的随机端口
-p 8080:80将容器的80端口映射到主机的8080端口

好的,检查一下

docker ps

容器没问题!

打开网站看一下

配置一下wordpress信息,ok!8080端口

当然我们还可以使用fig来对wordpress配置。但是在这里不作演示说明

安装 aspnet和iis

在docker hub 官方镜像库中,微软有自己的官方发布的iis和asp.net,以及asp.net core镜像。
在腾讯云的镜像加速下,centos 服务器进行pull这些镜像。

无法成功!可能是国内的镜像库并没有这些镜像,所以拉取docker hub,但是docker hub在国内没有镜像服务,加之国情如此。。。

换Ubuntu系统,使用docker hub mirror 进行加速服务,首先要先注册账号,然后使用命令,将自有的主机注册到docker hub mirror中

curl -sSL https://get.daocloud.io/daomonit/install.sh | sh -s xxx

xxx为注册账号的id

配置成功后的信息

相关的docker容器可视化服务有很多,但是大部分都是收费的。企业用必须自己搭建自己的镜像服务器和相关管理系统

在Ubuntu服务器中pull iis和aspnet的官方镜像。发现如下问题

没错,linux系统中的docker无法跑起官方的aspnet和iis镜像,错误信息提示,windows镜像无法跑起来。

安装vm虚拟机,准备在win7中跑一个win10 64和一个windows server 2016,然而出现了下面的情况

这个问题解决需要在本机BIOS中进行相关设置。


ps:2017年9月18日将会持续更新,等我的固态到了之后,我将在windows10中来继续研究docker,并且探寻docker 在实战中的运行。如果你有关于docker 运行asp.net程序的经验,请留下您的联系方式,我迫切需要和您请教一下这个问题。

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

推荐阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,404评论 0 120
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,415评论 15 147
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,342评论 0 27
  • 0x01 核心概念 Docker镜像类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统...
    闲云逸心阅读 4,598评论 0 9
  • 我是那种老工厂长大的职工子女。 一个的大型国有企业衍生了许许多多的人和事。曾经的辉煌荣耀都是上一代人的事了。现在这...
    南方冷无雪阅读 349评论 0 0