命令
# 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