Docker镜像下载及容器启动教程
作者:qq_322235565
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
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。