Docker容器的安装及简单应用

本文介绍了Docker的基本概念,展示了如何在RHEL7.3环境下安装配置Docker,并通过实例演示了镜像与容器的操作流程。此外,还深入探讨了容器的分层结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

docker设想是交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木组合,并且在最顶端署上自己的名字(最后一个标准化组件是用户的app)。这也就是基于docker的PaaS产品的原型。*

在这里插入图片描述
一.Docker的安装部署及简单应用

实验环境:RHEL7.3

  1. 获取软件安装包及其依赖包

     container-selinux-2.21-1.el7.noarch.rpm  
     pigz-2.3.4-1.el7.x86_64.rpm
     docker-ce-18.06.1.ce-3.el7.x86_64.rpm    
     policycoreutils-2.5-17.1.el7.x86_64.rpm
     libsemanage-2.5-8.el7.x86_64.rpm         
     policycoreutils-python-2.5-17.1.el7.x86_64.rpm
     libsemanage-python-2.5-8.el7.x86_64.rpm
    
  2. 安装并启动

     yum install -y *
     [root@server1 ~]# systemctl start docker		##启动docker
     [root@server1 ~]# docker --version				##查看版本信息
     Docker version 18.06.1-ce, build e68fc7a
     [root@server1 ~]# docker info							##docker宿主机的信息
     Containers: 1
      Running: 1
      Paused: 0
      Stopped: 0
     Images: 1
     Server Version: 18.06.1-ce
     Storage Driver: overlay2
      Backing Filesystem: xfs
      Supports d_type: true
      Native Overlay Diff: false
     Logging Driver: json-file
     Cgroup Driver: cgroupfs
     Plugins:
      Volume: local
      Network: bridge host macvlan null overlay
      Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
     Swarm: inactive
     [root@server1 ~]# ip addr  
    

在安装好docker后,linux系统会为docker容器分配一个ip

link/ether 02:42:83:dd:db:3c brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
  1. docker常用命令

     # docker load -i ubuntu.tar  导入镜像
     # docker run -it --name vm1 ubuntu    创建容器(以ubuntu镜像为模板)
     # docker ps  查看容器状态
     # docker ps -a   查看容器状态(包括不活跃的容器)
     # docker attach vm1   连接容器
     # docker top vm1   查看容器进程
     # docker logs vm1 查看容器指令输出 -f 参数可以实时查看
     # docker inspect vm1 查看容器详情
     # docker stats vm1 查看容器资源使用率
     # docker diff vm1 查看容器修改
     # docker stop vm1 停止容器
     # docker start vm1 启动容器
     # docker kill vm1 强制干掉容器
     # docker restart vm1 重启容器
     # docker pause/unpause vm1  暂停/恢复容器
     # docker rm vm1  删除容器
    

二. 导入镜像,容器的使用

	[root@server1 ~]# docker load -i game2048.tar 			##导入镜像
	011b303988d2: Loading layer [==================================================>]   5.05MB/5.05MB
	36e9226e74f8: Loading layer [==================================================>]  51.46MB/51.46MB
	192e9fad2abc: Loading layer [==================================================>]  3.584kB/3.584kB
	6d7504772167: Loading layer [==================================================>]  4.608kB/4.608kB
	88fca8ae768a: Loading layer [==================================================>]  629.8kB/629.8kB
	Loaded image: game2048:latest
	[root@server1 ~]# docker run -d -p 80:80 --name vm1 game2048		
	##添加端口映射,宿主主机的80端口映射到docker容器的80端口
	5ba77b22817a3968946ba4fb4d9a4afb44142db96ac1dbf87cc1d03578e97c18
	[root@server1 ~]# docker ps
	CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
	5ba77b22817a        game2048            "/bin/sh -c 'sed -i …"   6 seconds ago       Up 4 seconds        0.0.0.0:80->80/tcp, 443/tcp   vm1
	[root@server1 ~]# docker images
	REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
	game2048            latest              19299002fdbe        2 years ago         55.5MB

在这里插入图片描述
三.镜像的分层结构

[root@server1 ~]# docker run -it --name vm2 ubuntu
root@09474d140848:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@server1 ~]# docker images ubuntu
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              07c86167cdc4        3 years ago         188MB

[root@server1 ~]# docker commit -m "add files" vm2 ubuntu:v1
sha256:f6df2bc65c74de267b62b0ec73607fd76c02364f294574baed909d179d16df0d

[root@server1 ~]# docker history ubuntu
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
07c86167cdc4        3 years ago         /bin/sh -c #(nop) CMD ["/bin/bash"]             0B                  
<missing>           3 years ago         /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$…   1.9kB               
<missing>           3 years ago         /bin/sh -c echo '#!/bin/sh' > /usr/sbin/poli…   195kB               
<missing>           3 years ago         /bin/sh -c #(nop) ADD file:b9504126dc5590898…   188MB

[root@server1 ~]# docker history ubuntu:v1
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
f6df2bc65c74        29 seconds ago      /bin/bash                                       0B                  add files
07c86167cdc4        3 years ago         /bin/sh -c #(nop) CMD ["/bin/bash"]             0B                  
<missing>           3 years ago         /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$…   1.9kB               
<missing>           3 years ago         /bin/sh -c echo '#!/bin/sh' > /usr/sbin/poli…   195kB               
<missing>           3 years ago         /bin/sh -c #(nop) ADD file:b9504126dc5590898…   188MB 

可以看到容器的分层结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值