Docker 是一个提供集中式平台来执行应用程序的软件。它将软件包装成一个完整的标准化单元,其中包含所有要运行的内容。无论是代码,运行时环境,工具还是程序库。它保证软件能始终按预期那样运行。它提供了一种称为容器的隔离环境中运行应用程序的功能。我们可以在主机上同时运行多个容器。并且它是轻量级的,可以立即启动并使用较少的内存。很安全,每个容器彼此分离。本文将带大家了解如何使用 Docker,从而为我们的生产效率得到提升。
01
Docker 使用前提
1
环境要求
在此之前我们需要查看环境是否符合要求(机器必须是 64 位,linux 的版本必须大于等于 3.10)
02
Docker 的安装
2
安装步骤
2.1
Docker 要求 CentOS 系统的内核版本高于 3.10,查看前提条件验证你的 CentOS 版本是否支持 Docker。通过 uname -r 命令查看你当前的内核版本
2.2
使用 root 权限登录 CentOS。确保 yum 包更新到最新。
2.3
卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
复制代码
2.4
安装需要的软件包,yum-util 提供 yum-config-manager,另外两个是 devicemapper 驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
复制代码
2.5
设置 yum 源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
复制代码
2.6
可以查看所有仓库中所有 docker 版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
复制代码
2.7
安装 docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
复制代码
2.8
启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
复制代码
2.9
验证安装是否成功(有 client 和 service 两部分表示 docker 安装启动都成功了)
注意
因为之前安装过旧版本的 docker,在安装的时候报错如下:
Transaction check error:
file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
复制代码
卸载旧版本的包
$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
复制代码
再次安装 docker
$ sudo yum install docker-ce
复制代码
03
Docker 的使用
3
使用流程
3.1 从仓库中获取镜像(国外去下载)
3.2 从国外的镜像上下载
docker pull daocloud.io/centos:6.6
复制代码
3.3 查看镜像
3.4 镜像的搜索
3.5 镜像的创建
docker commit / docker build 和Dockerfile 来创建
3.5.1:通过commit来创建(运行刚刚下载的镜像)
docker run -it 镜像名字 /bin/bash
eg: docker run -it centos:6.6 /bin/bash
3.5.2:在centos中安装tar 并提交
docker run -it centos:6.6 /bin/bash
yum install tar
docker commit 实例的名字 自己的取的名字:6.6
docker ps -a :查看当前正在运行的实例
docker images
3.5.3:查看镜像的详情信息
docker inspect 镜像的id
3.5.4:删除镜像
docker rmi --force 镜像id 强制删除某一个镜像
3.5.5:删除容器
docker rm 容器id
复制代码
04
创建镜像(Dockerfile)
4
创建镜像
4.1 准备环境
4.1.1:将Tomcat和jdk拷贝到/usr/local/docker-content中
4.1.2:解压文件
tar -zxvf ....
复制代码
4.2 创建 Dockerfile 文件
FROM centos:6.6
#copy file
RUN mkdir -p /home/demo
ADD ./jdk-8u20-linux-x64.gz /home/demo
ADD ./apache-tomcat-9.0.10.tar.gz /home/demo
ENV JAVA_HOME /home/demo/jdk1.8.0_20
ENV PATH $JAVA_HOME/bin:$PATH
ENV LANG en_us.UTF-8
#EXPOSE
EXPOSE 8080
#init tomcat
ENTRYPOINT /home/demo/apache-tomcat-9.0.10/bin/startup.sh && tail -f /home/demo/apache-tomcat-9.0.10/logs/catalina.out
复制代码
4.3 创建镜像
docker build -t centostj:1.0 .
复制代码
4.4 测试镜像是否创建成功
4.5 运行这个镜像
docker run -it -p 8080 centostj:1.0 /bin/bash
复制代码
4.6 查看端口的绑定
05
镜像的载入与导出
5
镜像的载入与导出
5.1 导出容器(export)
docker export 实例的id > xxx.tar
eg:docker export 0c1d5677294c > back.tar
复制代码
5.2 导入容器
cat back.tar | docker import - centostj:v1.0
复制代码
5.3 使用 save 导出容器
docker save centostj > back1.tar 中间那个是镜像的名字
复制代码
5.4 使用 load 导入镜像
docker load < docker-seelight.tar
复制代码
docker logs 容器的id 或者 名字 查看使用过的命令
将镜像上的端口映射到物理机器上
1:docker run -d -p 5000(表示的是物理机器上的端口):5000(镜像上的这个端口) 镜像的名字 要运行的这个程序
docker ps -l :查看最后一次创建的这个容器
进入这个容器的方法:docker exec -it 95c133b8dce9 /bin/bash
docker cp 将外面的cp到里面去 docker cp /www/runoob 96f7f14e99ab:/www
docker stop 容器id:表示的是停止一个容器
docker cp 本地文件路径 ID全称:容器路径 上传本地文件到docker中
复制代码
希望这篇文章能对还没接触过容器化部署的小伙伴起到帮助,后续会更新 Docker 系列更多文章,谢谢大家支持!
评论