docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker镜像下载及容器启动

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

作者:qq_322235565

文章总结了Docker安装与使用流程,包括系统版本检测、安装命令、容器启动/停止/删除、进入容器的方法(如nsenter工具),以及运行容器时的注意事项,如容器生命周期与命名空间操作

Docker镜像和容器安装

# yum 安装redhat-lsb
yum install -y redhat-lsb
# 查看centos版本 
lsb_release -a

 

说明: 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

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

总结

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

您可能感兴趣的文章:
阅读全文