Docker容器的安装及简单应用

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
3.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 
可以看到容器的分层结构
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值