Docker容器

  这个暑假有幸找到了电信公司的实习。我所在的部门分管的是云计算,因此除了了解相关的云产品及其功能外,还了解到了一些技术构成,例如虚拟化技术等。

  在师傅的介绍下,有幸了解到了docker这个容器。Docker相比较于虚拟机,没有Hypervisor(虚拟机管理系统),而是用Docker进程守护来管理每一个容器,它相当于一个运行在后台的进程。并且每个容器无需运行一个Guest OS,所以有着占用系统资源少,启动快的优点。但是,由于缺少了虚拟化CPU这个步骤,所有容器是共用CPU的资源的,所以在隔离性这一方面,Docker是要比虚拟机差的。在使用方面,虚拟机适用于隔离不同的用户,而容器则适合用来彻底隔离完全不同的应用,如前端、数据库等。

Docker的安装和使用我都是在CentOS 7 环境下操作

1.Docker安装

yum install docker-io -y

2.设置开机启动

service docker start

3.使用腾讯云提供的国内镜像资源来加速访问Docker Hub

echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
systemctl daemon-reload
service docker restart

4.下载CenOS镜像

docker pull centos

可以查看已经安装的镜像
docker images

5.生成一个以镜像为模版的容器

docker run -it centos /bin/bash
使用bash shell

之后就进入了容器当中,可以像操作常规服务器一样操作容器

6.Docker容器的其他基本操作

docker [命令名] --help 查看命令介绍
docker run 创建并启动一个容器,在run后面加上-d参数,则会创建一个守护式容器在后台运行。
docker ps -a 查看已经创建的容器
docker ps -s 查看已经启动的容器
docker start con_name 启动容器名为con_name的容器
docker stop con_name 停止容器名为con_name的容器
docker rm con_name 删除容器名为con_name的容器
docker rename old_name new_name 重命名一个容器
docker attach con_name 将终端附着到正在运行的容器名为con_name的容器的终端上面去,前提是创建该容器时指定了相应的sh
执行这个命令后,按下回车键,会进入容器的命令行Shell中。
docker logs con_name 获取容器名为con_name的容器日志
docker inspect 查看容器的详细信息
docker top con_name 查看容器名为con_name的容器内部的进程
docker exec 可以用来在容器中运行一个进程

 


 

Docker的特点就是它能将不同的应用隔离开来,因为每个Container都可以有不同的依赖。我们还可以在一个容器中部署好环境之后,把它打包成一个新的镜像,之后我们到了另外一个环境中,只要基于docker安装这个镜像,就能快速部署这个环境。

1.先基于上面创建的容器,安装apache服务器

  

[root@67096e40b7a1 /]# yum install apache

2.退出容器,执行打包命令

[root@VM_0_7_centos ~]# docker commit -m "apache" -a "goto" 67096e40b7a1 goto/centos

3.查看docker中的镜像

[root@VM_0_7_centos ~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
goto/centos             latest              8cbe9c410cbb        2 minutes ago       319 MB
docker.io/centos/diy    git                 90f24856ac30        About an hour ago   339 MB
docker.io/hello-world   latest              2cb0d9787c4d        9 days ago          1.85 kB
docker.io/centos        latest              49f7960eb7e4        6 weeks ago         200 MB

第一个就是刚刚创建的镜像

4.使用镜像创建新建容器

[root@VM_0_7_centos ~]# docker run -it goto/centos /bin/bash
[root@8a007aa50100 /]# httpd --v

5.这个容器包含httpd相关配置文件

[root@8a007aa50100 httpd]# ls
conf  conf.d  conf.modules.d  logs  modules  run

 

posted @ 2018-07-19 09:29  GOTO!  阅读(314)  评论(0编辑  收藏  举报