官方文档: 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