不断更新,欢迎关注交流
登陆私有容器
- 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 swarm
swarm 初始化
- docker swarm init --advertise-addr 192.168.7.222
离开当前节点
- docker swarm leave --force
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 update --image container_tag
docker service ls | grep 0/
查看详细服务状态
- docker stack ps --no-trunc yskg3_dev
缩容扩容服务
- docker service scale
# 扩展服务容器副本数量
- docker service scale 服务名=副本数
查看服务在哪个node节点
- docker service ps 服务名
查看日志
- docker service ps 容器名 --no-trunc
- docker service logs 服务id
- docker logs -f 容器名 : 不退出查看容器实时日志
镜像打包与加载
docker 修改容器内容,提交为新镜像
- docker commit -m="提交信息" -a="作者" 旧容器id或容器名 新容器名:tag
将镜像打包
- 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)
- docker 状态有如下7种
created(已创建)
restarting(重启中)
running(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)
- 批量删除以zhy开头的容器
- docker rm $(docker ps -a | grep "zhy*" | awk "{print $1}")
- 批量删除镜像
- docker rmi $(docker images | grep "none" | awk '{print $3}')
删除具有相同多个imageID的镜像
docker images | grep 83d6014ac5c8 | awk '{print $1 ":" $2}' | xargs docker rmi
批量停止
docker ps -a |awk '{print $1}' |xargs docker stop
批量删除
docker ps -a |awk '{print $1}' |xargs docker rm
docker 网络相关
- 查看网络
- docker network ls
- 创建网络
- https://github.com/moby/moby/issues/33420
- docker network create --ingress --driver overlay ingress
- 删除网络
- docker network rm 网络名
docker 运维相关
-
查看docker系统磁盘占用分布
- docker system df
-
查看镜像挂载磁盘大小
- du -smh /var/lib/docker/overlay2/
Docker secret 相关
- 创建secret:
- docker secret create $SECRET_NAME $SECRET_CONF_FILE
- 查看有哪些secret
- docker secret ls