docker容器的使用

一、docker的理解

Docker 容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

二、docker容器的安装

1)安装docker和相关的依赖性

--->  yum install -y container-selinux-2.21-1.el7.noarch.rpm   docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm
      libsemanage-2.5-8.el7.x86_64.rpm    libsemanage-python-2.5-8.el7.x86_64.rpm
      pigz-2.3.4-1.el7.x86_64.rpm  policycoreutils-2.5-17.1.el7.x86_64.rpm

      policycoreutils-python-2.5-17.1.el7.x86_64.rpm

 


2)开启docker服务

--->  systemctl  start  docker

3)开启docker后,系统会为docker容器分配一个ip地址。

--->  ip addr

4)查看docker的信息的命令

--->  docker  info     # docker宿主机的信息

--->  docker  version  # 查看版本

--->  docker  images   # 查看当前镜像

三、现有镜像的导入和使用

1)将game2048进行导入并加载

--->  docker load   -i  game2048.tar

2)查看导入的镜像

--->  docker  images

3)运行game2048

--->  docker  run  -d  --name  vm1  game2048  # -d表示打入后台,--name表示容器的名字

4)查看容器vm1的信息

--->  docker  inspect  vm1       # 此时,vm1获得的ip地址在docker的网段是随机分配的

--->  docker  container ps     # 查看启动的容器。参数-a 表示所有docker进程

5)在浏览器中访问172.17.0.2(ip为自己的私有ip,其他人是不可以访问的)

四、在网络中拉取镜像

1、首先在阿里云注册帐号

2、编辑配置文件来使用加速器

--->  cd  /etc/docker/

--->  vim daemon.sjon 

3、重启服务并拉取镜像

 

--->  systemctl daemon-reload
--->  systemctl restart docker
--->  docker  pull  nginx      # 拉取镜像(比较费时)
--->  docker  images  nginx    # 查看拉取的镜像的信息
--->  docker  run  -d --name vm2 nginx     # 运行vm2



# 此时,我们启动了httpd服务。可以使用docker  inspect vm2查看nginx服务的ip

4)我们可以修改nginx的发布目录。
方法1:把发布文件拷贝到容器空间中
--->  vim /tmp/index.html       # 编辑发布文件
      server1
--->  docker cp /tmp/index.html  vm2:/usr/share/nginx/html/     # 拷贝
# 此时浏览器中结果为

方法2:通过挂载的方式,这样可以直接修改发布文件。
--->  mkdir -p  /tmp/docker/web
--->  vim /tmp/docker/web/index.html
      hello  world
--->  docker rm -f vm2     # 删除之前建立的vm2
--->  docker run -d  --name vm2 -v  /tmp/docker/web/:/use/share/nginx/html  nginx      # 把本地目录挂载在容器中
# 在浏览器中查看

5)对自己创建的容器的删除操作

 

--->  docker kill vm2     # 关闭容器

--->  docker rm vm2       # 移除自己创建容器

五、Dockerfile文件的编写(镜像的编写)

我们利用最简单的镜像rhel7来进行改造,最终封装成可以自带httpd服务的v1版本镜像

1)首先得到简单的rhel7的镜像,里面可以操作的命令比较少。

2)编写Dockerfile文件 (一边编写,一边验证)

--->  vim  /tmp/docker/Dockerfile

FROM rhel7                                 # 镜像的来源
ENV hostname server1                       # 修改主机名
EXPOSE 80                                  # 端口号
COPY dvd.repo  /etc/yum.repos.d/dvd.repo   # 服务yum源到镜像中
RUN  yum install -y httpd                  # 安装httpd服务
CMD ['/usr/sbin/httpd','D','FOREGROUND']   # 执行httpd服务的进程
# yum源的配置文件

--->  vim /tmp/docker/dvd.repo    

[rhel7.2]
name=rhel7.2
baseurl=http://172.17.0.1/rhel7.2
gpgcheck=0
3)生成v1版本的镜像

--->  cd  /tmp/docker

--->  docker build  -t rhel7.v1  .

--->  docker images  rhel7            # 查看rhel7镜像版本(有v1,大小为191M)


4)创建容器,并查看是否安装httpd服务 

--->  docker run -it --name vm1 rhel7:v1 bash      # 使用rhel:v1创建容器vm1,并打开shell终端

 

posted @ 2018-10-21 19:20  UTHN_B  阅读(417)  评论(0编辑  收藏  举报