Docker初体验(一)

最后修改时间:2019年6月24日

文档版本:1.0

Docker是一个开放源代码软件项目,让应用程序部署在软件货柜下的工作可以自动化进行,借此在Linux操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。

Docker利用Linux核心中的资源分离机制,例如cgroups,以及Linux核心名字空间(namespaces),来创建独立的容器(containers)。这可以在单一Linux实体下运作,避免引导一个虚拟机造成的额外负担。Linux核心对名字空间的支持完全隔离了工作环境中应用程序的视野,包括行程树、网络、用户ID与挂载文件系统,而核心的cgroup提供资源隔离,包括CPU、存储器、block I/O与网络。从0.9版本起,Dockers在使用抽象虚拟是经由libvirt的LXC与systemd - nspawn提供界面的基础上,开始包括libcontainer库做为以自己的方式开始直接使用由Linux核心提供的虚拟化的设施。

以上内容来自 维基百科

docker的部分实验内容灵感来自 https://www.server-world.info/en/

一. 安装、启动Docker

# 安装Docker
[root@localhost ~]# yum install docker -y
 
# 启动dockers守护进程
[root@localhost ~]# systemctl start docker
# 开机自启dockers守护进程
[root@localhost ~]# systemctl enable docker

二. 下载一个镜像并启动容器

# 下载一个镜像(这里以centos镜像为例)
[root@localhost ~]# docker pull centos
Using default tag: latest
latest: Pulling from docker.io/library/centos
8ba884070f61: Pull complete
Digest: sha256:b5e66c4651870a1ad435cd75922fe2cb943c9e973a9673822d1414824a1d0475
Status: Downloaded newer image for docker.io/centos:latest
 
# 查看所有镜像,可以看到刚刚下载的镜像
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              9f38484d220f        3 months ago        202 MB
 
# 启动centos容器(输入-it可以防止容器空闲自动关闭,-d则是后台运行)
[root@localhost ~]# docker run -dit centos
b7cb67ad770b5b05fce15e5b96f9e0057d9995f719dbbc391051edafa387b461
 
# 查看正在运行的容器
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
b7cb67ad770b        centos              "/bin/bash"         About a minute ago   Up About a minute                       focused_wilson

三. 进入容器

# 连接已经启动的容器
[root@localhost ~]# docker attach b7cb67ad770b
[root@b7cb67ad770b /]# uname -a
Linux b7cb67ad770b 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
 
⚠ 退出容器的终端时如果直接使用exit命令会导致容器空闲关闭,需要按住Ctrl不放再分别按pq退出
Leave a Reply