您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

docker基本管理

来源:网络整理 浏览:188次 时间:2020-07-04
Docker核心概念1、Docker是什么?

●是一种轻量级的"虚拟机”
●在Linux容器里运行应用的开源工具

2、Docker与虚拟机的区别特性Docker容器虚拟机启动特性秒级分钟级计算能力损耗几乎无损耗50%左右性能接近原生弱于系统支持量(单机)上千个几十个隔离性资源限制完全隔离3、Docker的使用场景

●打包应用程序简化部署

●可脱离底层硬件任意迁移

●例:服务器从腾讯云迁移到阿里云

4、Docker核心概念

镜像

容器

仓库(公有仓库、私有仓库,存放镜像)

5、CentOS安装Docker的两种方式

●使用CURL获得Docker的安装脚本进行安装

●使用YUM仓库来安装Docker

Docker镜像操作docker镜像基本操作
容器1:192.168.13.128容器2:192.168.13.129
[root@localhost ~]# docker inspect f7bb5701a33c  ##查看镜像信息[root@localhost ~]# docker tag nginx:latest nginx:web  ##添加新标签[root@localhost ~]# docker images  ##查看镜像REPOSITORY          TAG                 IMAGE ID            CREATED             SIZEnginx               latest              f7bb5701a33c        4 days ago          126MBnginx               web                 f7bb5701a33c        4 days ago          126MB##重新生成一个镜像,原有的不会消失[root@localhost ~]# docker images | grep web   ##查看标签为web的镜像nginx               web                 f7bb5701a33c        4 days ago          126MB[root@localhost ~]# docker rmi nginx:web   ##删除镜像,或者直接跟ID号Untagged: nginx:web[root@localhost ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEnginx               latest              f7bb5701a33c        4 days ago          126MB[root@localhost ~]# cd /opt/[root@localhost opt]# docker save  -o nginx nginx:latest ##存出镜像[root@localhost opt]# lscontainerd  nginx  rh[root@localhost opt]# scp /opt/nginx root@192.168.13.129:/opt/  ##远程复制到129服务器上
开启另一台装有docker的虚拟机(192.168.13.129)
[root@localhost opt]# docker load < nginx   ##载入镜像##或者使用docker load --input 存出文件名[root@localhost opt]# docker images  ##查看镜像信息REPOSITORY          TAG                 IMAGE ID            CREATED             SIZEnginx               latest              f7bb5701a33c        4 days ago          126MB回到原虚拟机(192.168.13.128)[root@localhost opt]# docker tag nginx:latest nginx:web  ##修改标签[root@localhost opt]# docker login  ##登录docker(你需要注册)Username:   ##用户名Password:    ##密码[root@localhost opt]# docker push nginx:web  ##上传公有仓库
docker容器基本操作
[root@localhost opt]# docker create -it nginx:latest /bin/bash  ##基于镜像创建一个容器##-i让容器的标准输入保持打开,-t让docker分配一个伪终端36fdfb0925ba040c094d585d70a3481bd450c7d39e6636ceeb10b5c1b9743593[root@localhost opt]# docker ps -a  ##-a列出最近一次启动的容器CONTAINER ID        IMAGE         COMMAND             CREATED             STATUS              PORTS               NAMES36fdfb0925ba        nginx:latest        "/bin/bash"         3 seconds ago       Created                                 mystifying_dijkstra[root@localhost opt]# docker start 36fdfb0925ba  ##开启容器36fdfb0925ba[root@localhost opt]# docker ps -a  ##查看此时容器状态为开启CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES36fdfb0925ba        nginx:latest        "/bin/bash"         16 minutes ago      Up 6 seconds        80/tcp              mystifying_dijkstra
完整的步骤操作:
[root@localhost opt]# docker search centos7   ##查看找centos7镜像[root@localhost opt]# docker pull paigeeworld/centos7  ##下载镜像[root@localhost opt]# docker images  ##查看镜像REPOSITORY            TAG                 IMAGE ID            CREATED             SIZEnginx                 latest              f7bb5701a33c        4 days ago          126MBnginx                 web                 f7bb5701a33c        4 days ago          126MBpaigeeworld/centos7   latest              4cbe7aa905e7        5 years ago         382MB[root@localhost opt]# docker create -it paigeeworld/centos7 /bin/bash  ##创建容器c48649c8cee9124cb456be4f93882e6dff16f88ba45051731138142d99293dfe[root@localhost opt]# docker ps -a  ##查看容器CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS                     PORTS               NAMESc48649c8cee9        paigeeworld/centos7   "/bin/bash"         4 seconds ago       Created                                        relaxed_curran36fdfb0925ba        nginx:latest          "/bin/bash"         24 minutes ago      Exited (0) 3 minutes ago                       mystifying_dijkstra[root@localhost opt]# docker start c48649c8cee9  ##开启容器c48649c8cee9[root@localhost opt]# docker ps -a  ##查看容器CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS                     PORTS               NAMESc48649c8cee9        paigeeworld/centos7   "/bin/bash"         34 seconds ago      Up 7 seconds                                   relaxed_curran36fdfb0925ba        nginx:latest          "/bin/bash"         24 minutes ago      Exited (0) 3 minutes ago  
容器的基本操作
[root@localhost opt]# docker run paigeeworld/centos7 /usr/bin/bash -c ls /##docker run直接下载镜像,创建容器,并开启,进入容器执行命令,退出binbootdevetchome[root@localhost opt]# docker ps -a  ##查看容器CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                      PORTS               NAMESc48649c8cee9        paigeeworld/centos7   "/bin/bash"              9 minutes ago       Up 9 minutes                                    relaxed_curran[root@localhost opt]# docker exec -it c48649c8cee9 /bin/bash  ##进入容器(必须为开启状态)bash-4.2# ls /bin   dev  home  lib64       media  opt   root  sbin  sys  usrboot  etc  lib   lost+found  mnt    proc  run   srv   tmp  varbash-4.2# exit   ##退出容器exit[root@localhost opt]# docker ps -a   ##此时容器状态还是开启的状态CONTAINER ID        IMAGE                 COMMAND                  CREATED              STATUS                          PORTS               NAMESc48649c8cee9        paigeeworld/centos7   "/bin/bash"              10 minutes ago       Up 10 minutes                                       relaxed_curran[root@localhost opt]# docker stop c48649c8cee9   ##关闭容器c48649c8cee9[root@localhost opt]# docker ps -a  ##此时容器为退出状态CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                       PORTS               NAMESc48649c8cee9        paigeeworld/centos7   "/bin/bash"              11 minutes ago      Exited [root@localhost opt]# docker run -d paigeeworld/centos7 /bin/bash -c "while true;do echo hello;done"##持续在后台执行,-d在后台进行运行398f3d27f36b7f59a2167a71e71f61064e4e9a0808dfa13404caec0280a0b9c2[root@localhost opt]# docker ps -a  ##查看容器一直是开启状态CONTAINER ID        IMAGE                 COMMAND                  CREATED              STATUS                       PORTS               NAMES398f3d27f36b        paigeeworld/centos7   "/bin/bash -c 'while…"   9 seconds ago        Up 7 seconds   [root@localhost opt]# docker export 36fdfb0925ba > nginx_c ##容器导出[root@localhost opt]# lscontainerd  nginx  nginx_c  rh[root@localhost opt]# scp /opt/nginx_c root@192.168.13.129:/opt/  ##远程复制到另一台虚拟机##到另一台虚拟机上[root@localhost opt]# lscontainerd  nginx  nginx_c  rh[root@localhost opt]# cat nginx_c | docker import - nginx:web ##容器导入##会生成镜像而不会创建容器sha256:1488d058197863aedd46d289eeb11dc39f19a2b855c3ecf383331a4d0bac568c[root@localhost opt]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEnginx               web                 1488d0581978        5 seconds ago       125MB[root@localhost opt]# docker ps -aCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES[root@localhost opt]# docker ps -a | awk '{print "docker rm "$1}' | bash ##批量删除容器
docker资源控制限制cpu使用速率
通过--cpu-quota选项来限制cpu的使用率通过修改配置文件cpu.cfs_quota_us实现
多任务按比例分享cpu
docker run --cpu-shares 1024 容器Adocker run --cpu-shares 1024 容器Bdocker run --cpu-shares 2048 容器C
使用--cpuset-cpus选项限制cpu内核使用权
[root@localhost opt]# docker run --cpu-quota 20000 nginx:latest ##设置20%限定[root@localhost opt]# cd /sys/fs/cgroup/cpu/docker/[root@localhost opt]# cat cpu.cfs_quota_us -1[root@localhost opt]# docker run -itd --name c1 --cpu-shares 512 paigeeworld/centos7##创建容器c1设置权重,使得c1和c2的cpu资源占比为33.3%和66.7%ec4ab03a7969eebe4746cfe67184bc2c6f9c97e81b22bc2ffab452820a78a0a7[root@localhost opt]# docker run -itd --name c2 --cpu-shares 1024 paigeeworld/centos7c688b014329c6a33b0d66947f4489a1a1cb6febc321090ecb4a82b68ae6df250[root@localhost opt]# docker ps -a  ##查看容器CONTAINER ID        IMAGE                 COMMAND                  CREATED              STATUS                     PORTS               NAMESc688b014329c        paigeeworld/centos7   "/bin/bash"              About a minute ago   Up About a minute                              c2ec4ab03a7969        paigeeworld/centos7   "/bin/bash"              About a minute ago   Up About a minute                              c1[root@localhost opt]# docker run --name c3 --cpuset-cpus 0,1 paigeeworld/centos7##限制容器使用指定的cpu[root@localhost opt]# docker ps -a  ##查看容器的信息CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                     PORTS               NAMES751409a81682        paigeeworld/centos7   "/bin/bash"              8 seconds ago       Exited (0) 7 seconds ago                       c3[root@localhost opt]# docker run --name c5 -m 512m paigeeworld/centos7##内存使用限制[root@localhost opt]# docker ps -aCONTAINER ID        IMAGE                 COMMAND                  CREATED              STATUS                          PORTS               NAMES8c3101668345        paigeeworld/centos7   "/bin/bash"              5 seconds ago        Exited (0) 4 seconds ago                            c5
对blkio限制
--device-read-bps:限制某个设备的数据量--device-write-bps:限制写入某个设备的数据量--device-read-iops:限制读某个设备的次数--device-write-iops:限制写入某个设备的次数[root@localhost opt]# docker run -d --device-write-bps /dev/sda:30mb paigeeworld/centos7
docker的数据管理数据管理操作
方便查看容器内产生的数据多容器间实现数据共享
两种管理方式
数据卷数据卷容器
数据卷
数据卷是一个提供容器使用的特殊目录
数据卷容器
数据卷容器就是一个普通的容器
数据卷共享(宿主机跟容器的共享):
[root@localhost ~]# docker pull centos  ##下载镜像[root@localhost ~]# docker run -v /var/www:/data1 --name web1 -it centos /bin/bash##关联宿主机和容器的共享[root@2483bee94f1a /]# cd data1/[root@2483bee94f1a data1]# echo "123" > test01.txt   [root@2483bee94f1a data1]# exit exit[root@localhost ~]# cat /var/www/test01.txt   123
数据卷容器共享(容器跟容器):
[root@localhost ~]# docker run --name web100 -v /data1 -v /data2 -it centos /bin/bash##创建一个web100容器并分别有两个卷为data1,2[root@ba6a328c068e /]# cd data1/[root@ba6a328c068e data1]# echo "111" > 111.txt  ##分别在目录中写入内容[root@ba6a328c068e data1]# cd ../data2/[root@ba6a328c068e data2]# echo "222" > 222.txt[root@ba6a328c068e data2]# exitexit[root@localhost ~]# docker run -it --volumes-from web100 -it centos /bin/bash##将新容器挂载数据卷容器web100[root@3f64be49dadd /]# cat data1/111.txt 111[root@3f64be49dadd /]# cat data2/222.txt 222

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com