atomic使用有点费劲,我改为centos7来做为学习环境。

1 安装

epel源就自带,目前版本是1.10.3

yum -y install docker

docker version
Client:
Version: 1.10.3
API version: 1.22
Package version: docker-common-1.10.3-46.el7.centos.10.x86_64
Go version: go1.6.3
Git commit: d381c64-unsupported
Built: Thu Aug 4 13:21:17 2016
OS/Arch: linux/amd64 Server:
Version: 1.10.3
API version: 1.22
Package version: docker-common-1.10.3-46.el7.centos.10.x86_64
Go version: go1.6.3
Git commit: d381c64-unsupported
Built: Thu Aug 4 13:21:17 2016
OS/Arch: linux/amd64
2 使用加速器下载镜像

国内访问docker.io剧慢,好在daocloud有号称终身免费的加速器,使用方法如下

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://682e782c.m.daocloud.io

不过这条命令运行后加速没什么效果,因为set_mirror.sh脚本有问题

        if grep "CentOS Linux release 7" /etc/redhat-release > /dev/null
then
if [[ "$docker_version" -lt 12 ]]
then
sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon --registry-mirror="$MIRROR_URL"|g" /lib/systemd/system/docker.service
sudo systemctl daemon-reload
else
sudo sed -i "s|^ExecStart=/usr/bin/dockerd$|ExecStart=/usr/bin/dockerd --registry-mirror="$MIRROR_URL"|g" /lib/systemd/system/docker.service
sudo systemctl daemon-reload
fi
echo "Success."
echo "You need to restart docker to take effect : sudo systemctl restart docker "
exit 0
else
echo "Error: Set mirror failed, please set registry-mirror manually please."
exit 1
fi

脚本里是ExecStart=/usr/bin/docker daemon,docker.servicej里实际是ExecStart=/usr/bin/docker-current daemon,所以在后面手工加上--registry-'mirror=http://682e782c.m.daocloud.io'

更改完后,别忘记执行

systemctl daemon-reload
systemctl restart docker && systemctl enable docker
3 下载镜像
docker pull centos:6
Trying to pull repository docker.io/library/centos ...
6: Pulling from docker.io/library/centos
08a7a0bb6122: Pull complete
Digest: sha256:cd6d68000b47a91e7c94b558d7e3e653c3f0eac1a77842d97b0b7ad955cad608
Status: Downloaded newer image for docker.io/centos:6 docker pull centos:7
Trying to pull repository docker.io/library/centos ...
7: Pulling from docker.io/library/centos
3d8673bd162a: Pull complete
Digest: sha256:a66ffcb73930584413de83311ca11a4cb4938c9b2521d331026dad970c19adf4
Status: Downloaded newer image for docker.io/centos:7 docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos 6 a3c09d36ab4a 3 weeks ago 194.6 MB
docker.io/centos 7 970633036444 3 weeks ago 196.7 MB
4 建立交互型容器
docker run -i -t centos:6 /bin/bash

[root@cab9ff817b6b /]# hostname
cab9ff817b6b [root@cab9ff817b6b /]# cat /etc/hosts
...
172.17.0.2 cab9ff817b6b [root@cab9ff817b6b /]# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:648 (648.0 b) TX bytes:648 (648.0 b) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 [root@cab9ff817b6b /]# yum install vim [root@cab9ff817b6b /]# exit docker run --name web-01 -i -t centos:6 /bin/bash
5 启动容器
docker start cab9ff817b6b
cab9ff817b6b docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cab9ff817b6b centos:6 "/bin/bash" 6 minutes ago Up 4 seconds suspicious_bose docker attach cab9ff817b6b
附着容器,可以理解登录容器的交互界面
6 建立守护型容器
docker run --name test_01 -d centos:6 /bin/sh -c 'while true; do echo hello world; sleep 1; done'
c7d4781438a7a83d51324c0f2ed1237ab8a61a7b64911f20bc99ceeaf4e27955 docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7d4781438a7 centos:6 "/bin/sh -c 'while tr" 9 seconds ago Up 7 seconds test_01 docker rm c7d4781438a7
Failed to remove container (c7d4781438a7): Error response from daemon: Conflict, You cannot remove a running container. Stop the container before attempting removal or use -f docker stop c7d4781438a7
c7d4781438a7 docker rm c7d4781438a7
c7d4781438a7
7 容器状态
docker top fb6b7ef0ef52
UID PID PPID C STIME TTY TIME CMD
root 22974 21672 1 03:12 ? 00:00:00 /bin/sh -c while true; do echo hello world; sleep 1; done
root 23031 22974 0 03:12 ? 00:00:00 sl docker logs fb6b7ef0ef52 docker logs -f fb6b7ef0ef52
8 在容器内部运行进程
docker exec -d fb6b7ef0ef52 touch /etc/new_config_file

docker exec -i -t fb6b7ef0ef52 /bin/bash
[root@fb6b7ef0ef52 /]# ls /etc/new_config_file
/etc/new_config_file
8 自动重启容器
docker run --restart=always --name test_01 -d centos:6 /bin/sh -c 'while true; do echo hello world; sleep 1; done'
或者异常退出,自动重启5次
--restart=on-failure:5
9 获取更多容器信息
docker inspect fb6b7ef0ef52
docker inspect --format '{{.Name}} {{.State.Running}}' fb6b7ef0ef52
/test_01 true
杀死所有running状态的容器
docker kill $(docker ps -q) 删除所有已经停止的容器
docker rm $(docker ps -a -q) 删除所有\’untagged/dangling\’ ()状态的镜像
docker rmi $(docker images -q -f dangling=true) 删除所有镜像:
docker rmi $(docker images -q)

docker学习(一)的更多相关文章

  1. Docker学习总结

    本文作为总结性文章,不会详细讲解Docker.但会把已学习的.了解的内容按照由易到难的顺序串起来,更多的是帮助Docker新手快速的了解Docker,知道目前处在哪个阶段,接下来该学些什么,避免碰太多 ...

  2. Docker学习笔记 — 配置国内免费registry mirror

    Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror

  3. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  4. docker学习资料整理(持续更新中..)

    docker最近可以说火得一踏糊涂,跟 51大神在交流技术的时候这个东西会多次被提到,当我们还玩vm+linux/freebsd的时候,人家已经上升到更高层次了,这就是差距,感觉好高大上的样子,技术之 ...

  5. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  6. Docker学习总结之Run命令介绍

    Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ...

  7. docker~学习笔记索引

    回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...

  8. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  9. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

  10. Docker 学习8 Dockerfile详解2

    一.继续上章节Docker学习7 CMD命令后. 11.ENTRYPOINT a.容器启动后相当于会启动ENTRYPOINT + CMD 命令,CMD相当于参数传给entrypoint的 [root@ ...

随机推荐

  1. Linq常用操作

    http://www.cnblogs.com/knowledgesea/p/3897665.html

  2. tuple解包给类的构造函数

    首先我们的第一步当然是将tuple解包.tuple提供了一个get函数来获取第N个元素.例如: get<1>(make_tuple(...)); 要将一个tuple全部拆解,就可以使用通过 ...

  3. JAVA 根据用户输入数据求某年到某年有多少天

    实例: import java.util.*; //求某年到某年有多少天 public class Test{ public static void main(String[] args){ Scan ...

  4. 四步轻松实现用Visio画UML类图

    本节和大家一起学习一下用Visio画UML类图的方法,主要有四个步骤,这里和大家分享一下,相信通过本节的学习,你对Visio画UML类图的步骤一定会有所了解. 用Visio画UML类图 对于画类图的工 ...

  5. IP地址漂移的实现与原理

    当前备份软件比较流行,其中用到的关键技术是IP 地址漂移, 实际上IP地址漂移技术是利用共享的“虚拟”IP地址,当本地进行节点切换与路由切换,使另一端的发送和收方端没有感觉到本地节点地址有变化,保证了 ...

  6. [Java] 读写字节数据,过滤流DataOutputStream和DataInputStream

    package test.stream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io ...

  7. Java List循环(转)

    List有三种循环方式: 分别是经典的for循环,迭代器(list.iterator()),foreache循环(和C#相同哦) 测试代码如下: public static void main(Str ...

  8. MySQL 字符串 转 int/double CAST与CONVERT 函数的用法

    http://hongmin118.iteye.com/blog/2029728   转的 MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值.两者具体的语 ...

  9. T450设置插入USB鼠标时自动禁用触摸板

    刚入手T450,打字时经常碰到触摸板,很是恼火,于是求助万能的度娘,找了卡饭基佬的教程,实测可行,大家可以试试.<win7下如何设置插入USB鼠标时自动禁用触摸板>,地址:www.kafa ...

  10. PHP中$_FILES的使用及注意事项

    $_FILES: 经由 HTTP POST 文件上传而提交至脚本的变量.类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用).$_FILES数组内容如下: $_FILES['m ...