目录
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
1. 首先检查 centos镜像是否存在,若不存在,则先在dockerHub 上pull下来。 2. 然后使用 centos镜像启动了一个容器。 3. 再分配一个文件系统,把这个文件置于这个容器的上一层,置于可写。 4. 同时分配了一个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