当前位置:   article > 正文

Docker镜像下载及容器启动_docker镜像下载和启动分开

docker镜像下载和启动分开

目录

Docker镜像和容器安装

Docker 常用命令

VI命令安装

进入容器脚本 nsenter

Docker镜像和容器安装


  1. 版本要求系统为64位、系统内核版本为 3.10 以上
  2. 查看linux系统版本,使用 lsb_release -a ,若出现未知的命令,先使用yum安装 redhat-lsb
    1. # yum 安装redhat-lsb
    2. yum install -y redhat-lsb
    3. # 查看centos版本
    4. lsb_release -a

  3. 系统内核版本查看 uname -r
     

  4. 查看是否已安装docker列表 我这个是已经安装了的截图  yum list installed | grep docker

  5. 安装docker yum -y install docker , y表示不询问安装,直到安装成功,安装完后再次查看安装列表

  6. 启动docker  systemctl start docker

  7. 查看docker服务状态  systemctl status docker

    说明: Docker安装成功

  8. 搜索centos镜像  docker search centos , 第一条是官方的,引用次数最多,stars

  9. 获取 centos 镜像 docker pull centos

  10. 查看镜像 docker images

    Docker 常用命令

  11.  使用docker输出 ‘hello world’  docker run centos /bin/echo 'hello world'
  12. 查看docker 所有的镜像,包括状态 docker ps -a
  13. 创建一个centos容器,命名为 mycentos,并进入其中,不退出  docker run --name mydocker -it centos /bin/bash
  14. 进入centos容器后,执行 ps aux , 可以看到当前只有两个进程
  15. 执行docker run  centos 做了什么事情那? 查看centos容器IP ip ad li
    1. 1. 首先检查 centos镜像是否存在,若不存在,则先在dockerHub 上pull下来。
    2. 2. 然后使用 centos镜像启动了一个容器。
    3. 3. 再分配一个文件系统,把这个文件置于这个容器的上一层,置于可写。
    4. 4. 同时分配了一个IP地址,使用ip命令查看 ip ad li
  16. docker容器会运行一个你指定的应用程序,当这个应用程序退出时,docker容器也就退出了。所以说,每次docker容器启动,只能启动一个应用程序
  17. 退出docker容器,在看之前创建的docker容器。 mydcoker 容器已经退出了
  18. 启动一个已经退出的容器  docker start CONTAINER ID
  19. 停止一个容器  docker stop 容器ID
  20. 删除一个容器  docker rm 容器ID
  21. 进入容器  docker attach 容器ID,有一个问题,很大情况下是进不去的,ctrl + c 之后,再次查看容器状态发现容器已经退出了。

    使用方式二进入容器, nsenter  访问另外一个容器的名称空间,通过PID进去。nsenter 在 util-linux软件包内,如果没有这个命令,需要先用yum 安装一下, yum install -u util-linux
    获取这个容器的PID,docker inspect --format "{{.State.Pid}}"
    容器名称 

    - 使用nsenter 命令进入 mynginx容器,nsenter --target 25760 --mount --uts --ipc --net --pid
  22. 进入镜像后,若发现ps 命令找不到,执行 apt-get update && apt-get install procps 安装
    官方Nginx 镜像的 nginx  在 /etc/nginx 目录下

  23. nginx镜像的root 目录位置  /usr/share/nginx/html

VI命令安装

  1. 分开执行 apt-get update  & apt-get install vim有些慢,慢慢等待

进入容器脚本 nsenter

  1. 编写进入docker脚本,参数为 容器Name

    脚本命名为 in.sh
    1. #!/bin/bash
    2. CNAME=$1
    3. CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME)
    4. nsenter --target $CPID --mount --uts --ipc --net --pid

     


 

 

 

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号