docker构建微服务 入门篇
2018-03-07 本文已影响12人
maxbin
什么是docker?
- docker是一个轻量级的开源应用容器引擎
- 容器使用沙箱机制,相互之间不会有任何接口,并且容器的性能开销低
怎么使用docker容器?
- docker可以安装在Linux系统中,也可以安装在Windows系统和MacOS中
- 但是docker对系统有要求,比如CentOS系统的内核版本需要高于3.8
- 使用uname -f 命令查询系统当前的内核版本
[root@test003 tmp]# uname -r
2.6.32-431.el6.x86_64
- 看到系统默认的内核是2.6.32的,此时我们在安装docker前需要更新系统内核
更新系统内核
操作系统使用的是CentOS7
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
- 升级内核版本(包含aufs)
cd /etc/yum.repos.d
wget http://www.hop5.in/yum/el6/hop5.repo
yum install kernel-ml-aufs kernel-ml-aufs-devel
- 修改引导的内核
vi /etc/grub.conf
把默认的引导文件设置为0。因为升级内核之后,新的内核在第一个(0)位置。
- 重启系统,使用新的内核
- 检查内核版本:
[root@localhost ~]# uname -r
3.10.0-514.el7.x86_64
- 检查aufs是否存在
grep aufs /proc/filesystems
nodev aufs
4、安装相应的epel源
wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
使用yum安装docker
yum -y install docker-io
启动docker
启动docker进程:service docker start
查看docker进程:ps -ef |grep docker
[root@localhost ~]# service docker start
Starting docker (via systemctl): [ OK ]
[root@localhost ~]# ps -ef |grep docker
root 1107 1 0 11:41 ? 00:00:00 /usr/bin/docker -d
root 2407 2254 0 11:51 pts/0 00:00:00 grep --color=auto docker
docker命令使用
- 使用docker运行centos镜像并输出hello world
docker run centos /bin/bash echo "hello world"
- docker 运行交互式的容器
docker run -i -t centos /bin/bash
此时用户会话进入了docker容器内部。输入exit并不会影响当前的centos,而是退出docker容器会话,并且docker容器还是在后台会运行
- 通过exec命令进去docker环境
docker exec -it ID /bin/bash
- 启动容器的后台模式
[root@localhost ~]# docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
1812d56ff928e0f1d3ba89ecbaab41b590ca4519b0f365d67e1919613667c63f
此时,输出的是一个长字符串“[root@localhost ~]# docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
1812d56ff928e0f1d3ba89ecbaab41b590ca4519b0f365d67e1919613667c63f”,这个是容器ID
- 可以使用docker ps命令查看容器运行情况
docker ps -a 列出所有的docker容器,参考"docker ps --help"命令,查看ps的帮助信息
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1812d56ff928 centos "/bin/sh -c 'while t 6 minutes ago Up 6 minutes clever_pare
- 查看容器内的标准输出,使用命令 docker logs 容器ID/NAME
docker logs 1812d56ff928
docker logs clever_pare
可以看到控制台输出了hello world
- 停止容器 docker stop ID/NAME
# 使用id停止容器
docker stop 1812d56ff928
# 使用name停止容器
docker stop clever_pare