简介

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

环境:CentOS7.3

地址:192.168.1.137

首先注册阿里云开发者帐号帐号

https://cr.console.aliyun.com/

登陆后取得专属加速器地址:https://XXXXX.mirror.aliyuncs.com


1、安装Docker

1
2
3
4
5
#使用Aliyun的repo来安装
#wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#yum install docker
# docker -v
Docker version 1.12.6, build 85d7426 /1 .12.6 ##当前最新版本为1.12.6


#或执行以下命令:

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


2、#配置阿里的Docker加速器

针对Docker客户端版本大于1.10的用户

修改daemon配置文件/etc/docker/daemon.json来使用加速器:

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


3、下载image 并创建启动一个容器

a、搜索镜像

1
2
3
4
5
6
7
8
9
sudo  docker search ubuntu
INDEX       NAME                                                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io /ubuntu                                                  Ubuntu is a Debian-based Linux operating s...   6780      [OK]       
docker.io   docker.io /dorowu/ubuntu-desktop-lxde-vnc                          Ubuntu with openssh-server and NoVNC            141                  [OK]
docker.io   docker.io /rastasheep/ubuntu-sshd                                  Dockerized SSH service, built on  top  of of...   115                  [OK]
docker.io   docker.io /ansible/ubuntu14 .04-ansible                            Ubuntu 14.04 LTS with ansible                   88                   [OK]
docker.io   docker.io /ubuntu-upstart                                          Upstart is an event-based replacement  for  ...   80        [OK]       
docker.io   docker.io /neurodebian                                             NeuroDebian provides neuroscience research...   40        [OK]       
docker.io   docker.io /ubuntu-debootstrap                                      debootstrap --variant=minbase --components...   32        [OK]

        

b、下载容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo  docker pull docker.io /ubuntu
Using default tag: latest
Trying to pull repository docker.io /library/ubuntu  ... 
latest: Pulling from docker.io /library/ubuntu
ae79f2514705: Pull complete 
c59d01a7e4ca: Pull complete 
41ba73a9054d: Pull complete 
f1bbfd495cc1: Pull complete 
0c346f7223e2: Pull complete 
Digest: sha256:6eb24585b1b2e7402600450d289ea0fd195cfb76893032bbbb3943e041ec8a65
sudo  docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io /nginx      latest              40960efd7b8f        4 days ago          108.4 MB
docker.io /ubuntu     latest              dd6f76d9cc90        4 days ago          122 MB
##这里第一个镜像就下载完成了。


c、根据ubuntu镜像创建容器(简单测试)

1
2
3
4
5
6
7
sudo  docker run -t -i ubuntu  /bin/bash
root@9f716fcadb56:/ # cat /etc/issue
Ubuntu 16.04.3 LTS \n \l
root@9f716fcadb56:/ # exit#停止容器
sudo  docker  ps  -a 
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                      PORTS               NAMES
9f716fcadb56        ubuntu               "/bin/bash"          About a minute ago   Exited (0) 31 seconds ago                       goofy_aryabhata

注释:各个字段

CONTAINER ID ---> 容器的ID号:9f716fcadb56  

IMAGE ---> 使用的镜像名

COMMAND --->  创建容器的命令

STATUS   --->   容器状态(Exited 表示停止状态)

PORTS  --->   容器的端口

NAMES  --->   容器名称


d、启动容器

1
2
3
4
sudo  docker start 9f716fcadb56
sudo  docker  ps  -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
9f716fcadb56        ubuntu               "/bin/bash"          12 minutes ago      Up 29 seconds                           goofy_aryabhata

e、进入容器

使用docker 自带 attach 命令:

1
2
3
sudo  docker attach 9f716fcadb56
[ sudo ] password  for  ljohn: 
root@9f716fcadb56:/ #


自docker1.3 以后使用 exec 命令

1
2
sudo  docker  exec  -ti 9f7  /bin/bash
root@9f716fcadb56:/ #

进入刚刚创建的容器中了,哈哈。


d、删除容器

1
2
3
4
5
6
7
8
sudo  docker  rm  9f7
Error response from daemon: You cannot remove a running container 9f716fcadb5626561972312a2dbb2e23c2b312fd57861e0658feceff70409942. Stop the container before attempting removal or use -f
这里发现无法删除,说容器正在运行。需要加 "-f" 参数
sudo  docker  rm  -f 9f7
9f7
sudo  docker  ps  -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
这里可以看到刚才创建的容器被删除了。


期待后续更新 Docker学习笔记 之 数据管理