# Docker cheatsheet

By [仓佑伽措](https://paragraph.com/@gatro) · 2021-11-07

---

0x0 Install
-----------

    # Mac
    $ brew cask install docker
    
    # Ubuntu
    $ curl -fsSL https://get.docker.com -o get-docker.sh
    $ sudo sh get-docker.sh
    ## without sudo
    $ sudo groupadd docker
    $ sudo gpasswd -a $USER docker
    $ newgrp docker
    

0x1 CLI
-------

### Basic

    # 开机自动启动
    $ systemctl enable docker.service
    
    # 创建镜像
    $ docker build -t TAG
    
    # 查看所有容器
    $ docker ps -a
    
    # 删除容器
    $ docker rm -f [CONTAINER_ID]|[CONTAINER_NAME]
    $ docker rm -f $(docker ps -a -q)
    
    # 自启动
    $ docker update --restart=always [CONTAINER_ID]
    
    # 查看容器IP
    $ sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' CONTAINER_ID
    

### Debug

    # 容器日志
    $ docker logs [CONTAINER_ID]
    
    # 进入 docker 环境
    $ docker exec -it --user root [CONTAINER_ID] /bin/sh
    
    # 执行run语句，查看错误
    docker run -it IMAGE_LAST
    
    # 进入 docker 环境
    docker exec mongo cat [PATH_TO_FILE]
    

### Volume

    # 查看所有挂载目录名
    $ docker volume ls
    
    # 查看挂载目录信息
    $ docker volume inspect [VOLUME_NAME]
    
    # 查看挂载目录
    $ alias dm-disk='docker run --rm -it -v /:/docker alpine:edge $@'
    $ dm-disk ls -l /docker/[PATH_TO_VOLUME]
    
    # 操作路径
    $ dm-disk [COMMAND] /docker/[PATH_TO_VOLUME]

---

*Originally published on [仓佑伽措](https://paragraph.com/@gatro/docker-cheatsheet)*
