Docker 常用命令总结
2019-06-24 本文已影响0人
one_8274
不断更新,欢迎关注交流
登陆私有容器
- docker login --username=YOURUSERNAME dockerhub.xxx.com
下载私有镜像仓库容器
- docker pull dockerhub.xxxx.com/xxx/xxx
查看docker镜像及容器空间占比
docker system df
docker compose
执行compose.yml
- docker-compose up -d
- -d: 后台运行
查看服务状态
- docker-compose ps
停止通过compose.yml启动的服务
- docker-compose down
热更新指定服务
- 方法1: docker restart CONTAINER_NAME
这个CONTAINER_NAME指docker-compose ps 中看到的name - 方法二: docker-compose restart CONTAINER_NAME
这个CONTAINER_NAME指yml文件中的服务名
docker stack
stack启动
- docker stack deploy -c docker-compsoe.yml stack_name
查看stack服务状态
- docker service ls
停止stack启动的服务
- docker stack rm stack_name
stack 启动后更新指定服务
- docker service update --force STACK_CONTAINER_NAME
缩容扩容服务
- docker service scale
# 扩展服务容器副本数量
- docker service scale 服务名=副本数
查看日志
- docker service ps 容器名 --no-trunc
- docker service logs 服务id
镜像打包与加载
将镜像打包
- docker save image_address | gzip > image.tar.gz
通过压缩文件加载镜像
- docker load -i image.tar.gz
批量打包脚本
images_dir=images_`date +"%Y-%m-%d"`
rm -rf $images_dir
mkdir $images_dir
# 2019.06.11批量下载改为循环下载By Zyf
#docker-compose pull
save_image () {
image=$1
echo "==> "$2"/"$3" ==> pull "${image}
docker pull ${image}
saved_file=`echo ${image} | awk -F / '{print $NF}' | sed 's/:/-/g'`.tar
zipped_file=$saved_file.gz
echo "saving $image ..."
docker save $image > ${images_dir}/${saved_file}
cd ${images_dir} && tar -czvf ${zipped_file} ${saved_file} && cd -
}
# 首次部署
# 2019.07.17 判断是否有 Update By zyf
for yml in $(ls | grep .yml);
do
echo "Read" $yml
total=$(cat $yml | grep image | awk '{if($1=="image:"){print $1}}'| wc -l)
for eximage in $(cat $yml | grep image | awk '{if($1=="image:"){print $2}}');
do
let i+=1
save_image $eximage $i $total
done
done
rm -rf ../${images_dir}/*.tar
批量load
#!/bin/bash
# 解压tar.gz文件
for dir in `ls -1 | grep .tar.gz`;
do
tar -zvxf $dir;
done
rm -rf *.tar.gz
# 导入镜像
for dir in `ls -1 | grep .tar`;
do
docker load -i $dir;
done
容器交互
docker 进入运行中容器
- docker exec -it container_id bash
docker 退出运行中容器
- 快捷键:ctrl p q
宿主机与容器内文件拷贝
- docker cp 源文件绝对路径 目前路径
demo:将容器内文件拷贝到当前目录下
docker cp container_id:/data/global.conf ./
$符的应用
- 删除全部image
- docker rmi $(docker images)
- 删除全部Container
- docker rm $(docker ps -a)
- 停止全部Container
- docker stop $(docker ps -a)
- 批量删除已退出的docker container
- docker rm $(docker ps -qf status=exited)
- 批量删除以zhy开头的容器
- docker rm $(docker ps -a | grep "zhy*" | awk "{print $1}")
- 批量删除镜像
- docker rmi $(docker images | grep "none" | awk '{print $3}')
docker 网络相关
- 查看网络
- docker network ls
- 创建网络
- https://github.com/moby/moby/issues/33420
- docker network create --ingress --driver overlay ingress
- 删除网络
- docker network rm 网络名