命令

# 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"
    

2023年5月18日

Docker官方仓库域名被墙,国内已无法正常访问。

容器逃逸

原理

参考链接