docker学习(一)
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学习(一)的更多相关文章
- Docker学习总结
		本文作为总结性文章,不会详细讲解Docker.但会把已学习的.了解的内容按照由易到难的顺序串起来,更多的是帮助Docker新手快速的了解Docker,知道目前处在哪个阶段,接下来该学些什么,避免碰太多 ... 
- Docker学习笔记 — 配置国内免费registry mirror
		Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror 
- docker学习笔记1 -- 安装和配置
		技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ... 
- docker学习资料整理(持续更新中..)
		docker最近可以说火得一踏糊涂,跟 51大神在交流技术的时候这个东西会多次被提到,当我们还玩vm+linux/freebsd的时候,人家已经上升到更高层次了,这就是差距,感觉好高大上的样子,技术之 ... 
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
		Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ... 
- Docker学习总结之Run命令介绍
		Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ... 
- docker~学习笔记索引
		回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ... 
- Docker学习笔记 - Docker容器内部署redis
		Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ... 
- docker学习笔记(一)—— ubuntu16.04下安装docker
		docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ... 
- Docker 学习8 Dockerfile详解2
		一.继续上章节Docker学习7 CMD命令后. 11.ENTRYPOINT a.容器启动后相当于会启动ENTRYPOINT + CMD 命令,CMD相当于参数传给entrypoint的 [root@ ... 
随机推荐
- HDU 2717 Catch That Cow(BFS)
			Catch That Cow Farmer John has been informed of the location of a fugitive cow and wants to catch he ... 
- mapreduce执行流程
			角色描述:JobClient:执行任务的客户端JobTracker:任务调度器TaskTracker:任务跟踪器Task:具体的任务(Map OR Reduce) 从生命周期的角度来看,mapredu ... 
- OOP三个基本特征:封装、继承、多态
			面向对象的三个基本特征是:封装.继承.多态. 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类 ... 
- SQL Server 2005中的分区表(五):添加一个分区(转)
			所谓天下大事,分久必合,合久必分,对于分区表而言也一样.前面我们介绍过如何删除(合并)分区表中的一个分区,下面我们介绍一下如何为分区表添加一个分区. 为分区表添加一个分区,这种情况是时常会 发生的.比 ... 
- [ActionScript 3.0] flash如何访问父级或者舞台上的变量、函数等的方法
			方法一: 进行类型转换,先将root.parent强制转换为MovieClip类型,再进行使用,如下:MovieClip(root).i.MovieClip(this.parent).i.MovieC ... 
- C# String.Format大全 去 decimal 后面的 0
			转 http://kwon.iteye.com/blog/1068255 http://blog.csdn.net/tvvbbb/article/details/47256943 public st ... 
- Excel粘贴到textarea换行符替换
			复制到→ Excel列表的内容复制到textarea中后,前台取到的文本是这样的: chrome监视显示 console.log输出 现在需要将excel中的每行数据拼接起来用“;”隔开,方法如下: ... 
- 有向无环图(DAG)的最小路径覆盖(转)
			DAG的最小路径覆盖 定义:在一个有向图中,找出最少的路径,使得这些路径经过了所有的点. 最小路径覆盖分为最小不相交路径覆盖和最小可相交路径覆盖. 最小不相交路径覆盖:每一条路径经过的顶点各不相同.如 ... 
- Longest Increasing Subsequence(DP)
			public static int LIS(List<Integer> al) { int[] arr = new int[al.size()]; int lis = 0; arr[0] ... 
- SQLServer 索引以及视图
			业务 主键: 索引: 锁: ========================================= 一个页分为 页头 页体--存储行 页尾 页是有固定大小的,但是数据不一定存满,有可能产生 ... 
