什么是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