脚本网 > 服务器 > Docker镜像下载及容器启动教程

Docker镜像下载及容器启动教程

admin 服务器

Docker镜像和容器安装

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

  • 系统内核版本查看 uname -r

 

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

  • 安装docker yum -y install docker , y表示不询问安装,直到安装成功,安装完后再次查看安装列表
  • 启动docker  systemctl start docker
  • 查看docker服务状态  systemctl status docker

说明: Docker安装成功

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

获取 centos 镜像 docker pull centos

查看镜像 docker images

Docker 常用命令

使用docker输出

‘hello world’  docker run centos /bin/echo 'hello world'

查看docker 所有的镜像,包括状态 docker ps -a

创建一个centos容器,命名为 mycentos,并进入其中,不退出  docker run --name mydocker -it centos /bin/bash

进入centos容器后,执行 ps aux , 可以看到当前只有两个进程

执行docker run  centos 做了什么事情那? 查看centos容器IP ip ad li

  • 首先检查 centos镜像是否存在,若不存在,则先在dockerHub 上pull下来。
  • 然后使用 centos镜像启动了一个容器。
  • 再分配一个文件系统,把这个文件置于这个容器的上一层,置于可写。
  • 同时分配了一个IP地址,使用ip命令查看  ip ad li

docker容器会运行一个你指定的应用程序,当这个应用程序退出时,docker容器也就退出了。所以说,每次docker容器启动,只能启动一个应用程序

退出docker容器,在看之前创建的docker容器。 mydcoker 容器已经退出了

启动一个已经退出的容器  docker start CONTAINER ID

停止一个容器  docker stop 容器ID

删除一个容器  docker rm 容器ID

进入容器  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

进入镜像后,若发现ps 命令找不到,执行 apt-get update && apt-get install procps 安装 

官方Nginx 镜像的 nginx  在 /etc/nginx 目录下

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

VI命令安装

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

进入容器脚本 nsenter

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

脚本命名为 in.sh

#!/bin/bash
CNAME=$1
CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME)
nsenter --target $CPID --mount --uts --ipc --net --pid

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。