Docker常用命令及脚本
2024-09-06 19:58:21
1、常用命令
docker
search centos #搜索镜像
pull centos #下载镜像
save centos -o centos.tar centos #保存并导出镜像文件
load --input centos.tar #导入镜像文件
rmi IMAGEID #删除镜像
ps #查看正在运行的容器
ps -a -l #查看所有容器
images #列出镜像
run --name mydocker -h hostname -t -i -d centos /bin/bash #-t(启动一个伪终端) -i(打开标准输入) -d 后台运行
start mydocker #启动容器
stop mydocker #停止容器
attach #进入容器,但是退出后容器停止
esec mydocker ps #不进入容器执行命令
esec -it mydocker /bin/bash #类似nsenter命令
inspect -f "{{ .State.Pid }}" mydocker #获取容器的PID
inspect -f '{{.State.Pid}} {{.Id}}' $(docker ps -a -q) #获取所有容器的PID
nsenter -t PID -m -u -i -n -p #独立命令(前边不用加docker)进入容器,且退 出后不终止容器,需要yum util-linux
rm #删除容器
rm -f #删除正在运行的容器
logs ID #看日志
port ID #查看端口映射
2、网络映射
docker run -p
IP:hostPort:containerPort:udp
可以用-p -p指定多个端口映射
3、数据管理
数据卷
docker run -d --name mydocker -v /data nginx #在容器里挂载一个/data的目录
docker inspect -f {{.Mounts}} mydocker #查看挂载的目录在宿主机的位置
docker run -d --name mydocker -v /newdata:/data:ro(rw) nginx #指定目录或文件挂载和权限,
源:目标;只读、读写等
数据卷容器
docker run -it --name mydocker --volumes-from mydocker2 centos /bin/bash
#指定一个数据容器做源挂载到此容器,类似于网络共享硬盘
4、可用命令
docker kill/rm $(docker ps -a -q) #杀死/删除所有docker容器
systemctl daemon-reload #reload /etc/docker/daemon.json配置文件
进入容器脚本
#!/bin/sh if [ -e $(dirname "$0")/nsenter ]; then
# with boot2docker, nsenter is not in the PATH but it is in the same folder
NSENTER=$(dirname "$0")/nsenter
else
NSENTER=nsenter
fi if [ -z "$1" ]; then
echo "Usage: `basename "$"` CONTAINER [COMMAND [ARG]...]"
echo ""
echo "Enters the Docker CONTAINER and executes the specified COMMAND."
#进入容器并执行指定命令
echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."
#如未指定命令,则在容器中运行交互式shell
else
PID=$(docker inspect --format "{{.State.Pid}}" "$1")
if [ -z "$PID" ]; then
exit
fi
shift OPTS="--target $PID --mount --uts --ipc --net --pid --" if [ -z "$1" ]; then
# No command given.
# Use su to clear all host environment variables except for TERM,
# initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
# and start a login shell.
#"$NSENTER" $OPTS su - root
"$NSENTER" $OPTS /bin/su - root
else
# Use env to clear all host environment variables.
"$NSENTER" $OPTS env --ignore-environment -- "$@"
fi
fi
最新文章
- Python标准模块--collections
- Java-IO之DeflaterOutputStream和InflaterOutputStream
- Linux下oracle11gR2系统安装到数据库建立配置及最后oracle的dmp文件导入一站式操作记录
- collectionView初始化
- android 通过httpclient下载文件并保存
- OpenJudge 2756 二叉树
- R语言学习网站
- sql server的两个类型转换函数
- 参加Java培训到底靠不靠谱?
- scrapy相关:splash安装 A javascript rendering service 渲染
- 数字证书原理(ssl,https)
- HTML中body与html的关系
- [转帖] IIS经典模式和集成模式的区别
- DxO FilmPack for Mac(胶片模拟效果软件)破解版安装
- c++浅拷贝和深拷贝---14
- CSDN无耻,亿赛通无耻
- java第一次实验报告
- dedecms 织梦本地调试 后台反映非常慢的处理办法
- MySQL学习笔记:时间差
- JZOJ.5325【NOIP2017模拟8.21】九九归一