官方文档: https://docs.docker.com/reference/cli/docker/container/run

覆盖entrypoint

$ docker run -d \
--name python3 \
--entrypoint tail /dev/null \
python3

启动一个容器:

$ docker run \  
-d \
--name leslie \
-h leslie \
-p 9002:80 \
--restart always \
-v /var/www/html/leslie/:/var/www/html/ \
--add-host 'chopedb test.abc.com':172.17.0.1 \
nginx:latest

进入容器内:

  • 运行一个临时容器,然后运行 /bin/bash
    $ docker run -it --rm redis /bin/sh
  • 在一个已经存在的容器上运行/bin/bash
    $ docker exec -it leslie /bin/bash

常用选项

  • 绑定容器的端口到宿主机
    -P(大写),把Dockerfile中EXPOSE设置的暴露端口都映射到宿主机。
    -P 8080:80,宿主机8080和容器80映射
  • 设置容器的主机名
    --hostname 或 -h 设置容器的主机名
  • 设置运行的容器名字
    --name leslie
  • 获取一个终端tty
    -t tty
  • Keep STDIN open even if not attached
    -i Keep STDIN open even if not attached
  • 在后台运行容器
    -d Run container in background and print container ID
  • 退出时删除容器
    --rm 在退出时删除容器,不能与-d同时使用。
  • 修改容器内/etc/hosts
    --add-host chopedb:172.17.0.1
    --add-host ‘api.leslie.chope.net.cn api.leslie.chope.cc’:127.0.0.1
  • 设置环境变量
    $ docker run --env VAR1=value1 --env VAR2=value2 ubuntu
    $ docker run -e "VAR1=value1" -e "VAR2=value2" ubuntu env | grep VAR
    $ VAR1=value1
    $ VAR2=value2