--------- 启动容器常用选项及用法 --------
docker run 常用选项及用法
如前边所说,容器是由镜像启动的
下面以 grafana/grafana:5.4.3 镜像为例 ,镜像 ID 是 088a3a431574 :
直接启动容器,并执行 bash shell(要想进入容器,必须要指定要执行的命令,只有 bash 可以进入容器),下面这种方式一般用来检查自己制作的镜像各项设置是否有问题。这样启动容器,退出后容器就会死掉,并且无法启动。
docker run -ti grafana/grafana:5.4.3 bash
后台启动容器(使用 -d 选项),并挂载目录或文件到容器中(使用 -v 选项,前边是宿主机路径,后边是容器路径)
docker run -d -v /opt/grafana/data/grafana:/var/lib/grafana grafana/grafana:5.4.3
上边的启动方式再增加个 容器开机启动 (--restart=always)
docker run -d --restart=always -v /opt/grafana/data/grafana:/var/lib/grafana grafana/grafana:5.4.3
上边的启动方式再增加个 指定容器名称 ( --name=grafana)
docker run -d --name=grafana --restart=always -v /opt/grafana/data/grafana:/var/lib/grafana grafana/grafana:5.4.3
上边的启动方式再增加个 限制容器内存使用 ( -m 4096m)
docker run -d --name=grafana --restart=always -m 4096m -v /opt/grafana/data/grafana:/var/lib/grafana grafana/grafana:5.4.3
上边的启动方式再增加个 将容器中服务端口映射到宿主机 (-p 3000:3000 ,前边是宿主机端口,后边是容器端口)
docker run -d --name=grafana --restart=always -m 4096m -p 3000:3000 -v /opt/grafana/data/grafana:/var/lib/grafana grafana/grafana:5.4.3
上边的启动方式再增加个 在容器中加入环境变量 (-e STATUS=0)
docker run -d --name=grafana --restart=always -e STATUS=0 -m 4096m -p 3000:3000 -v /opt/grafana/data/grafana:/var/lib/grafana grafana/grafana:5.4.3
添加容器hosts记录
docker run -d --name=grafana --restart=always --add-host hbasemaster81:192.168.2.81 --add-host hbasemaster82:192.168.2.82 -e STATUS=0 -m 4096m -p 3000:3000 -v /opt/grafana/data/grafana:/var/lib/grafana grafana/grafana:5.4.3
可以将上边的命令在启动脚本中写成这样的格式
cat > start_grafana.sh << EOF
#!/bin/bash
docker stop `docker ps -a |awk '/grafana/{print $1}'`
docker rm `docker ps -a |awk '/grafana/{print $1}'`
docker run -d \
--name=grafana \
--restart=always \
-p 3000:3000 \
-m 4096m \
-v /opt/grafana/data/grafana:/var/lib/grafana \
grafana/grafana:5.4.3
EOF
-------------------------------------------------------------------------
对容器的操作常用的命令,-a 会列出各种状态的所有容器
docker ps -a
列出启动容器的 详细信息
docker inspect containerID
登录到容器中
docker exec -ti containerID bash
docker exec -ti 088a3a431574 bash
不登录到容器中执行容器中的命令
docker exec -ti containerID ls /
docker exec -ti 088a3a431574 ls /
停止 、 启动 、 删除(只能删除已经停止的容器) 一个容器
docker stop containerID
docker start containerID
docker rm containerID
docker stop 088a3a431574