Docker的使用

Docker的使用

Docker常用命令

1
2
3
4
5
6
7
8
docker run -it [--name <name>] <image> #创建并启动一个容器
# 启用Ptrace方便调试
# --cap-add=SYS_PTRACE --security-opt seccomp=unconfined

docker attach <name> #附加到容器
docker logs -ft <name> #查看容器日志
docker exec -it <name> /bin/bash #使用bash登录目标容器
docker exec -u root -it <name> /bin/bash #以root身份登入

Docker合并镜像所有层

1
2
3
FROM <image>:<tag> as base
FROM scratch
COPY --from=base / /

为创建好的容器修改配置

  • 关闭docker服务
    1
    2
    sudo systemctl stop docker.socket docker.service
    cd /var/lib/docker/containers/<container-hash>
  • 添加端口
    1
    2
    3
    4
    # 修改hostconfig.json
    "PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"80"}]}
    # 修改config.v2.json
    "ExposedPorts":{"80/tcp":{}}
  • 启用Ptrace
    1
    2
    3
    4
    # 启动容器前: 增加`--cap-add=SYS_PTRACE`
    # 启动容器后: 修改hostconfig.json
    "CapAdd":["SYS_PTRACE"],
    "SecurityOpt":["seccomp=unconfined"]