极速上手使用Docker,这篇文章就够了!

 

Docker是一个提供集中式平台来执行应用程序的软件。它将软件包装成一个完整的标准化单元,其中包含所有要运行的内容。无论是代码,运行时环境,工具还是程序库。它保证软件能始终按预期那样运行。它提供了一种称为容器的隔离环境中运行应用程序的功能。我们可以在主机上同时运行多个容器。并且它是轻量级的,可以立即启动并使用较少的内存。很安全,每个容器彼此分离。本文将带大家了解如何使用Docker,从而为我们的生产效率得到提升。

01

Docker使用前提

1

环境要求

在此之前我们需要查看环境是否符合要求(机器必须是64位,linux的版本必须大于等于3.10)

$ uname -r

02

Docker的安装

2

安装步骤

2.1

Docker要求CentOS系统的内核版本高于3.10,查看前提条件验证你的CentOS版本是否支持Docker。通过uname -r 命令查看你当前的内核版本

$ uname -r

2.2

使用root权限登录CentOS。确保yum包更新到最新。

$ sudo yum update

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 version

注意

因为之前安装过旧版本的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 从仓库中获取镜像(国外去下载)

docker pull centos:6.6

3.2 从国外的镜像上下载

docker pull daocloud.io/centos:6.6

3.3 查看镜像

docker images

3.4 镜像的搜索

docker search centos

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 测试镜像是否创建成功

docker images

4.5 运行这个镜像

docker run -it  -p 8080  centostj:1.0 /bin/bash

4.6 查看端口的绑定

docker ps -a

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系列更多文章,谢谢大家支持!

#Java##软件##容器##Java开发##java#
全部评论
又是努力学习的一天
点赞 回复 分享
发布于 2022-08-24 08:49 江苏

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
菜菜咪:1. 可以使用简历网站的模版,美观度会更好一点 2. 邮箱可以重新申请一个,或者用qq邮箱的别名,部分hr可能会不喜欢数字邮箱 3. 项目经历最好分点描述,类似的项目很多,可以参考一下别人怎么写的 4. 自我评价可加可不加,技术岗更看重技术。最后,加油,优秀士兵
点赞 评论 收藏
分享
最近又搬回宿舍了,在工位坐不住,写一写秋招起伏不断的心态变化,也算对自己心态的一些思考表演式学习从开始为实习准备的时候就特别焦虑,楼主一开始选择的是cpp后端,但是24届这个方向已经炸了,同时自己又因为本科非92且非科班,所以感到机会更加迷茫。在某天晚上用java写出hello&nbsp;world并失眠一整晚后选择老本行干嵌入式。理想是美好的,现实情况是每天忙但又没有实质性进展,总是在配环境,调工具,顺带还要推科研。而这时候才发现自己一直在表演式学习,徘徊在设想如何展开工作的循环里,导致没有实质性进展。现在看来当时如果把精力专注在动手写而不是两只手端着看教程,基本功或许不会那么差。实习的焦虑5月,楼主...
耶比:哲学上有一个问题,玛丽的房间:玛丽知道眼睛识别色彩的原理知道各种颜色,但是她生活在黑白的房间里,直到有一天玛丽的房门打开了她亲眼看到了颜色,才知道什么是色彩。我现在最大可能的减少对非工作事情的思考,如果有一件事困扰了我, 能解决的我就直接做(去哪里或者和谁吵架等等……),解决不了的我就不想了,每一天都是最年轻的一天,珍惜今天吧
投递比亚迪等公司10个岗位 > 秋招被确诊为…… 牛客创作赏金赛
点赞 评论 收藏
分享
评论
点赞
3
分享
牛客网
牛客企业服务