博客搭建过程中,使用了docker container。记录下常用命令。

环境

  1. Ubuntu 20.04
  2. bash
  3. docker

查找 iamge

docker search [iamge-name]
1
2
3
4
5
~$ docker search nginx
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                              Official build of Nginx.                        13505               [OK]                
jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   1841                                    [OK]
.....

拉取 image

docker pull [image-name]

列出所有的 image

docker images

移除 image

docker rmi [image-name]

启动 docker

docker run --volumn=[挂载本地路径:docker内部的路径] 
           --env=[key=value] \ #环境变量
           --restart=always \ #container重启策略
           --name=[container的名字] \
           --detach=true \ #运行在后台
           --publish=[主机上的端口:container的内部端口] \
           [image-name]

查看 container 状态

列出所有运行中的container

docker ps
1
2
3
4
~$ docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                           NAMES
a7b3ff4a2148        drone/drone-runner-docker:1   "/bin/drone-runner-d…"   6 days ago          Up 6 days           0.0.0.0:3000->3000/tcp          runner
93f0eb5a7619        drone/drone:1                 "/bin/drone-server"      6 days ago          Up 6 days           80/tcp, 0.0.0.0:8443->443/tcp   drone

列出所有container的状态

docker ps -a

根据名字列出某个container

docker ps -a -f name=[name]
1
2
3
~$ docker ps -a -f name=lamboyant_torvalds
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
1c08a60c803d        nginx               "/docker-entrypoint.…"   24 minutes ago      Exited (0) 22 minutes ago                       flamboyant_torvalds

根据自己选择的列输出

docker ps -a --format [option]
1
2
3
4
~$ docker ps -a --format "{{.ID}} @@ {{.Image}} @@ {{.Names}} =>{{.Status}}"
1c08a60c803d @@ nginx @@ flamboyant_torvalds =>Exited (0) 33 minutes ago
a7b3ff4a2148 @@ drone/drone-runner-docker:1 @@ runner =>Up 6 days
93f0eb5a7619 @@ drone/drone:1 @@ drone =>Up 6 days

查看 logs

docker logs [container名字|ID]

登陆运行中的 container

docker exec -it drone sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
~$ docker exec --help

Usage:  docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Run a command in a running container

Options:
  -d, --detach               Detached mode: run command in the background
      --detach-keys string   Override the key sequence for detaching a container
  -e, --env list             Set environment variables
  -i, --interactive          Keep STDIN open even if not attached
      --privileged           Give extended privileges to the command
  -t, --tty                  Allocate a pseudo-TTY
  -u, --user string          Username or UID (format: <name|uid>[:<group|gid>])
  -w, --workdir string       Working directory inside the container

移除 container

docker rm [container id]

停止 container

docker stop [container id|name]

批量操作

批量移除(强制删除)container

docker rm -f $(docker ps --format {{.ID}})

批量移除(强制删除)images

docker rmi -f $(docker images --format {{.ID}})

Reference

Dokcer官网