1.Docker介绍
-
容器技术是一种进程隔离技术
-
应用可以运行在一个个相互隔离的容器,与虚拟机不同的是:
- 应用运行时公用一个Kernel容器技术
- 提升了对系统资源利用率
- 提高了应用的部署迁移效率
1.1 Docker介绍
- Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。
- Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布在任何流行的Linux机器上,也可以实现虚拟化。
1.2 Docker概念
1.3 Docker架构
2.Docker安装与服务
2.1 Docker安装
-
配置Yum源
/etc/yum.repos.d/docker.repo
[ali-epel]
baseurl=https://mirrors.aliyun.com/epel/6/x86_64
enabled=1
gpgcheck=0 -
安装Docker软件
#docker更新到最新版本
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
#也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
2.2 Docker服务管理
-
Docker服务查看
service docker status -
Docker服务启动
service docker start -
Docker服务停止
service docker stop -
Docker服务开机启动
chkconfig docker on
3.Docker操作
3.1 Docker信息查看
- 常用命令
docker info #查看已创建的docker的整体信息
docker version #查看docker版本
docker images #查看本地已有镜像
docker ps[-a] #查看容器运行状态
docker inspect CONTAINER|IMAGE #查看某个docker或镜像的整体json配置参数
-
Docker加速器配置
/etc/docker/daemon.json
{"regeistry-mirrors":["https://xxxx.mirror.aliyuncs.com"]} -
重启docker服务
service docker restart -
搜索和下载容器
docker search <images_name> #搜索镜像
docker pull <images_name> #下载镜像
docker images #查看本地镜像
3.2 运行容器
- 运行docker容器
docker run -itd centos /bin/bash #运行docker容器
docker run -itd --privileged --name="test" centos #运行具有真实root管理权限的docker容器
docker ps [-a] #查看运行中的容器
docker attach <CONTAINER ID> #进入后台运行的容器
- 登录docker
docker exec -it <ContainerID>|<Names> bash
#docker exec -it <ContainerID>|<Names> sh
exit 退出,结束运行
按ctrl+P+Q退出,后台继续运行
docker run -itd --name test vsr-vpp-frr:v2
-
SSH登录
如果容器有启动SSH服务,可以通过SSH登录容器 -
数据复制
- 把容器的文件或目录复制到本机
docker cp 98d01104e30c:/www/ /www/
- 把主机文件或目录映射到容器
docker run 创建容器时,将主机/home/data映射指定目录/data中
docker run -itd -v /home/data:/data my/centos /bin/bash
- 把容器的文件或目录复制到本机
-
容器启停
docker start <ContainerID>|<Names> //启动容器
docker stop <ContainerID>|<Names> //停止容器
docker restart <ContainerID>|<Names> //重启容器
3.3 构建镜像
-
从容器构建镜像
- 运行一个容器
- 登录容器,修改容器内的文件或软件(例如安装httpd)
- 停止容器
docker stop
- 提交容器
docker commit -m "message" -a "author" docker_name my_centos:V2
- 修改docker提交tag,用于标记提交IP等信息:
docker tag my_centos:V2 192.168.110.100/library/repo_name:V3
,其中library为远端项目名称,repo_name为镜像名称,:后面v3表示版本号; - 登录harbor
docker login 192.168.110.100
,如果不输入IP,默认登录是docker官方地址https://hub.docker.com; - 推送到harbor上,
docker push 192.168.110.100/library/repo_name:V3
-
使用Dockerfile构建镜像
-
创建空目录,并新建Dockerfile文件
FROM 基于那个镜像
RUN 安装软件用
MAINTAINER 镜像创建者 -
创建镜像
docker build -t my/centos_nfs:v2 -
Dockerfile示例
FROM cnetos:7 MAINTAINER author RUN yum -y install httpd WORKDIR /root ADD index.html /var/www/html CMD /etc/init.d/httpd start
-