命令
  # build并tag
  docker build -t imagename .
  # 将build好的image上传到docker hub
  docker login -u $username
  docker tag $imagename $username/$imagename
  docker push $username/$imagename
  # 查看运行的container
  docker ps
  
  # 查看所有的container
  docker ps -a
  
  # 查看container的配置情况
  docker inspect container-name
  # 直接获取目标容器的启动参数
  docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike target-container-name
  # 可将上述命令设置别名
  alias drunlike="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike"
  # 查看容器的日志
  docker logs container-name
  # 显示所有的镜像
  docker image ls
  
  # 删除容器
  docker rm container-name
  # 删除镜像
  docker rmi imagename
  # 退出容器后自动删除
  docker run --rm  $imagename
  # 为用户添加docker用户组权限
  sudo usermod -aG docker your-username
  newgrp docker 
Dockerfile配置
- 代理设置 - 让镜像构建过程也走代理:ENV http_proxy=http://172.17.0.1:7890 ENV https_proxy=http://172.17.0.1:7890
 
- 让镜像构建过程也走代理:
- dockerignore 新建文件.dockerignore,写入需要忽略的文件, - 在Dockerfile中添加一行 - COPY .dockerignore .
docker-compose.yml配置
- 代理设置- 让容器走代理environment: - http_proxy=http://172.17.0.1:7890 - https_proxy=http://172.17.0.1:7890
 
- 让容器走代理
- volume挂载
例:
注:此处所挂载的文件位置与docker-compose.yml文件同级volumes: - "./config.json:/app/config.json" - "./save.json:/app/save.json" - "./warning.json:/app/warning.json"
- resart(重启策略)重启策略 重启条件 适用场景 restart: always容器退出时,无论正常或异常 始终运行的容器,例如数据库、消息队列 restart: on-failure容器以非零退出代码退出时 处理业务逻辑的容器,例如 Web 服务器、API 服务 unless-stopped容器在停止之前会一直运行 
docker-compose up的四种写法
- 传统写法:cd到compose.yml所在文件夹位置,再docker-compose up
- 使用绝对路径: docker-compose -f /home/user/project/docker-compose.yml up
- 使用别名: alias project-up="docker-compose -f /home/user/project/docker-compose.yml up(别名还可以用中文名)
在群晖上使用docker
- 紧急!解决Docker镜像无法拉取问题! - 承心识梦
- 为群晖 Container Manager 配置代理 | 柴语言 · ChaiLang
- 群晖 Docker 服务使用心得 - CodeSky 代码之空
- NAS系统折腾记 | 设置科学上网环境 - HY’s Blog
- 群晖 NAS - 代理设置 | Darren’s Blog
- 群晖 Docker 的迷惑配置 - 晨鹤部落格
- 群晖Non-Root非特权账户执行Docker指令 - 兮陌
#创建群组并分配用户:
sudo synogroup --add docker
sudo synogroup --memberadd docker <username1> <username2> ...
sudo synogroup --get docker
#更改docker权限:
sudo chgrp docker /var/run/docker.sock
- 报错: /usr/local/bin/docker-compose: line 1: Not: command not found- 我之前在群晖上使用docker-compose都很正常,但某天突然报以上错误。一开始一头雾水,但尝试去找这个文件,发现并不存在。那问题就转变成如果在群晖上安装docker-compose了,搜到原来,群晖也能用 Docker Compose! - 初之音这篇,摘抄命令如下
 
- 我之前在群晖上使用
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
sh -c "curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > $DOCKER_CONFIG/cli-plugins/docker-compose"
# or 
sh -c "curl -L https://mirror.ghproxy.com/https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > $DOCKER_CONFIG/cli-plugins/docker-compose"
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
容器逃逸
原理
搭建私有docker仓库
时间线
2023年5月18日
Docker官方仓库域名被墙,国内已无法正常访问。
2024年6月8日
这几天国内不少镜像站被关停了,唉
2024年7月12日
2024年8月11日
- Recent Docker BuildKit Features You’re Missing Out On | Martin Heinz | Personal Website & Blog- docker buildx debug