关联问题
换一批
1
Docker技术介绍
DOCKER是一个基于LXC技术之上构建的container容器引擎,通过内核虚拟化技术(namespace及cgroups)来提供容器的资源隔离与安全保障,KVM是通过硬件实现的虚拟化技术,它是通过系统来实现资源隔离与安全保障,占用系统资源比较小
官方网站:https://www.docker.com/
Docker组成:
客户端与服务端
Docker组件:
镜像
容器
仓库
2
Docker与Openstack对比

3
Docker 的优点
1)简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,在Docker容器的处理下,只需要数秒就能完成。 2)多样性: Docker 帮你打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。 3)节省开支: 云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
4
Docker的应用场景
1)需要简化配置(测试环境与生产环境不同) 2)代码管理(代码上传与下载) 3)提升开发效率(开发环境配置的安装和openstack kvm相同) 4)应用隔离 5)服务器整合 6)调试 7)多终端、多租户 8)需要快速部署与环境一致性
5
Docker安装与配置
安装Docker服务
代码语言:javascript
AI代码解释
复制
root@centos7 ~]# yum install docker -y [root@centos7 ~]# systemctl start docker
下载镜像文件
代码语言:javascript
AI代码解释
复制
[root@centos7 ~]# docker pull centos:latest Trying to pull repository docker.io/library/centos ... centos7: Pulling from docker.io/library/centos 93857f76ae30: Pull complete Digest: sha256:4eda692c08e0a065ae91d74e82fff4af3da307b4341ad61fa61771cc4659af60 [root@centos7 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos centos7 a8493f5f50ff 3 days ago 192.5 MB
删除镜像
代码语言:javascript
AI代码解释
复制
[root@centos7 ~]# docker rmi a8493f5f50ff ##容器ID
6
Docker容器创建与管理
1)创建容器
方法一:
代码语言:javascript
AI代码解释
复制
[root@centos7 ~]# docker run centos /bin/echo "nihao" ##创建容器 nihao [root@centos7 ~]# docker ps -a ##查看所有容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3c113f9a4f1b centos "/bin/echo nihao" 43 seconds ago Exited (0) 41 seconds ago boring_liskov
这里没有指定容器名称,自动命名,状态是自动退出
方法二:创建一个自定义名称的容器
代码语言:javascript
AI代码解释
复制
[root@centos7 ~]# docker run --name mgg -t -i centos /bin/bash 名称 分配伪终端 -i 处于打开状态 [root@2db7f1389dbd /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 22:46 ? 00:00:00 /bin/bash root 13 1 0 22:49 ? 00:00:00 ps -ef [root@centos7 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2db7f1389dbd centos "/bin/bash" 4 minutes ago Up 4 minutes mgg
docker ps -a是显示所有容器包括没有运行的(同virsh list --all)
2)进入、退出、启动容器
代码语言:javascript
AI代码解释
复制
[root@2db7f1389dbd /]# exit ##退出容器 exit [root@centos7 ~]# docker start 2db7f1389dbd ##启动容器 2db7f1389dbd [root@centos7 ~]# docker attach 2db7f1389dbd ##进入容器(必须是启动状态下) [root@2db7f1389dbd /]# hostname 2db7f1389dbd
这种进入方式,退出后容器就进入Down状态,如下
代码语言:javascript
AI代码解释
复制
[root@2db7f1389dbd /]# exit exit [root@centos7 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3)使用nsenter命令进入容器
代码语言:javascript
AI代码解释
复制
[root@centos7 ~]# nsenter --help Usage: nsenter [options] <program> [<argument>...] Run a program with namespaces of other processes. Options: -t, --target <pid> target process to get namespaces from -m, --mount[=<file>] enter mount namespace -u, --uts[=<file>] enter UTS namespace (hostname etc) -i, --ipc[=<file>] enter System V IPC namespace -n, --net[=<file>] enter network namespace -p, --pid[=<file>] enter pid namespace -U, --user[=<file>] enter user namespace -S, --setuid <uid> set uid in entered namespace -G, --setgid <gid> set gid in entered namespace --preserve-credentials do not touch uids or gids -r, --root[=<dir>] set the root directory -w, --wd[=<dir>] set the working directory -F, --no-fork do not fork before exec'ing <program> -Z, --follow-context set SELinux context according to --target PID -h, --help display this help and exit -V, --version output version information and exit
获取容器的PID
代码语言:javascript
AI代码解释
复制
[root@centos7 ~]# docker inspect --format "{{.State.Pid}}" 2db7f1389dbd 4580 [root@centos7 ~]# nsenter -t 4580 -u -i -n -p [root@2db7f1389dbd ~]# hostname 2db7f1389dbd [root@2db7f1389dbd ~]# exit logout [root@centos7 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2db7f1389dbd centos "/bin/bash" 22 minutes ago Up 7 minutes mgg
4)删除容器
代码语言:javascript
AI代码解释
复制
[root@centos7 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2db7f1389dbd centos "/bin/bash" 31 minutes ago Up 16 minutes mgg 3c113f9a4f1b centos "/bin/echo nihao" 38 minutes ago Exited (0) 38 minutes ago boring_liskov [root@centos7 ~]# docker rm 3c113f9a4f1b ##接名称也可以,删除一个停止的容器 3c113f9a4f1b [root@centos7 ~]# docker rm -f 3c113f9a4f1b ##删除一个正在运行的容器 [root@centos7 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2db7f1389dbd centos "/bin/bash" 31 minutes ago Up 16 minutes mgg [root@centos7 ~]# docker run --rm centos /bin/echo "hello" ##创建时自动删除,用于测试 [root@centos7 ~]#docker --kill $(docker ps -a -q) ##删除正在运行的容器
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除
推荐阅读
编辑精选文章
换一批
推荐阅读
编辑精选文章
相关讨论
相关课程
容器镜像服务
容器服务
消息队列
数据库
大数据
云服务器
广告
云开发个人版 免费体验1个月
相关知识
容器化部署从入门到精通Docker技术详解
docker容器技术与应用
容器技术之Docker
容器 docker得花多少钱
Docker 教程(图文讲解)
Docker容器的运用
花壳协议与Docker容器的兼容性
容器化技术应用都有哪些工具
走马观花云原生技术(1):容器引擎containerd
Java容器化技术怎样应用
网址: Docker容器技术入门(一) https://m.huajiangbk.com/newsview2484496.html
| 上一篇: 钟花樱容器育苗技术.docx |
下一篇: Java语言中的容器技术介绍 |