docker服务之容器管理命令

docker管理命令

随机端口运行

$ docker run -lt P nginx

指定端口运行

$ docker run -d --name nginx-test -p 81:80 nginx

$ docker run -it -p 192.168.7.101:8801:80 nginx   #指定ip运行

测试:curl http://192.168.7.101:8801

4.6查看日志

$ docker logs nginx-test

$ docker logs -f  nginx-test

4.7查看映射端口

root@docker-node1:~# docker port nginx-test
80/tcp -> 0.0.0.0:81

4.8后台启动nginx

 docker run -d --name nginx-teset2 -p 8801:80 nginx   #-d 即为后台启动、只针对当前终端,关闭终端后,nginx也就不执行


4.9进入nginx

$ docker run -it --name centso-test1 nginx bash  #进入容器、
$ exit  #退出容器
$ docker exec -it nginx-test3 bash  再次进入容器

$ docker run -it --rm --name centso-test1 nginx  单次进入容器,退出即删除

命令传递

docker run -d -it centos /usr/bin/tail -f '/etc/hosts' 

docker exec -it 1b6056266ba753ccbc056aed30a7970b8a825e0a1862a481eaf5ddbe5b09ded0  bash

4.10容器启动和停止

$  docker stop f12f8b8dc688  #不常用

$ docker start f12f8b8dc688

4.11进入容器命令

exec命令
执行单次命令与进入容器,不是很推荐此方式,虽然 exit 退出容器还在运行

docker exec -it 1b6056266ba7 bash

nsenter 命令:
推荐使用此方式,nsenter 命令需要通过 PID 进入到容器内部,不过可以使用
docker inspect 获取到容器的 PID:

centos:yum install util-linux #安装 nsenter 命令
Ubuntu: apt instlll util-linux

docker inspect d4dfa1b6acd1  -f "{{.NetworkSettings.IPAddress}}"
docker inspect d4dfa1b6acd1  -f "{{.State.Pid}}"

nsenter -t PID -m -u -i -n -p

脚本方式进入

$  cat docker-start.sh 
#!/bin/bash
 docker_in(){  
	 NAME_ID=$1
	 PID=$(docker inspect -f "{{.State.Pid}}" ${NAME_ID})
	 nsenter -t ${PID} -m -u -i -n -p
 }

 docker_in $1


$ bash docker-start.sh d4dfa1b6acd1

继承宿主机的网络

4.12容器关闭

$ docker ps
$ docker kill 1b6056266ba7
$ docker ps -a -q
$ docker kill $(docker ps -a -q)

删除容器

#删除已经退出容器
root@docker-node1:~/scripts# docker rm -f `docker ps -aq -f status=exited`
d4dfa1b6acd1
00d91f2af7c4
66459b7ec6c1
3c524ad8e18a
1b6056266ba7
0d4743a57b96
ff52ff99ab0a
cda8f817fb9c
f6d1ed50a8d0
bd06cf7ca242
0dc78f574f24
7093dea4ee1b
59a7fbd92693

删除所有容器(慎重操作,危险)

$ docker rm -f $(docker ps -a -q)

原文地址:https://www.cnblogs.com/pansn/p/11524294.html