您的位置:首页 > 运维架构 > Docker

Docker常用命令

2018-03-13 14:51 579 查看

Docker镜像常用指令

启动Docker

sudo systemctl start docker


查看Docker版本

docker version


搜索镜像

docker search
用来搜索
Dcoker Hub
中的镜像。例如 :

docker search java




下载镜像

使用
docker pull
Docker Rigistry
中下载镜像,例如:

docker pull java


列出镜像

docker images
即可列出已经下载的镜像。

docker images




删除本地镜像

删除指定名称的镜像

docker rmi hello-world
docker rmi -f hello-world //强制删除




删除所有镜像

docker rmi -f $(docker images)


Docker容器常用指令

新建并启动容器

使用
docker run
命令来新建并启动一个容器。选项列表:

-d
: 表示后台运行

-P
: 随机端口映射

-p
: 指定端口映射,有以下可选参数:

ip:hostPort:containerPort


ip::containerPort


ip:hostPort:containerPort


containerPort


--network
: 指定网络模式,该选项有以下可选参数:

--network=bridge
: 默认选项,表示连接到默认网关。

[b]
--network=host
:
容器使用宿主的网络。

--network=container
:
NAME_or_ID,告诉Docker让新建的容器使用自己已有的网络配置。

--network=none
:
不配置该容器的网络,用户可自定义网络配置。

例1:

docker run java /bin/echo 'Hello world'




例2:

docker run -d -p 91:80 nginx


启动一个nginx容器,没有镜像会先下载一个镜像。
-d
是后台运行,
-p
开放容器端口到宿主机端口。

访问
http://Docker主机IP:91/
就会看到;



列出容器

使用
docker ps
命令,默认可列出运行中的容器。要列出所有容器可以使用
docker ps -a




CONTAIER_ID : 容器id

IMAGE : 镜像名称

COMMAND : 表示启动时运行的命令

CREATED : 创建时间

STATUS : 容器运行的状态,UP表示运行中,Existed表示已经停止

PORTS : 容器对外的端口

NAMES : 表示容器名称,由Docker默认生成,也可使用
docker run
命令的
--name
选项自行指定

停止容器

使用
docker stop
命令停止容器。

docker stop  de4984c7ea98   //根据  CONTAIER_ID 来删除
docker stop sad_noyce       //根据  NAMES       来删除


de4984c7ea98
可以从
docker ps
命令中查看运行容器的
CONTAIER_ID
。同理
sad_noyce
表示容器名称。

强制停止容器

可使用
docker kill
来强制停止容器。

docker kill de4984c7ea98  //de4984c7ea98  为 CONTAIER_ID


启动已停止的容器

使用
docker run
命令,即新建并重启一个容器。对已经停止的容器,可以用
docker start
来启动。例如:

docker start de4984c7ea98   //de4984c7ea98  为 CONTAIER_ID


重启容器

使用
docker restart
来重启容器。该命令相当于先执行
docker stop
然后执行
docker start


进入容器

某些场景下,可能要进入运行中的容器。

使用
docker attach
进入容器

docker attach de4984c7ea98  //de4984c7ea98  为 CONTAIER_ID


当多个窗口同事
attach
一个容器的时候,所有的窗口都同步显示,有一个阻塞的话,其他窗口也无法操作。所以并不太方便。

使用
nsenter
进入容器

 首先要找到容器的第一个进程PID

docker inspect --format "{{.State.Pid}}" de4984c7ea98  //使用时,只需要改de4984c7ea98为你的 CONTAIER_ID 即可




 然后根据PID,使用一下命令进入容器。

nsenter --target 3028 --mount --uts --ipc --net --pid  //3028 是容器的PID


删除容器

使用
docker rm
即可删除指定容器。

例1:

docker rm de4984c7ea98  //de4984c7ea98  为 CONTAIER_ID


该命令只能删除已经停止运行的容器,如需删除正在运行的容器,需要使用
-f
参数

例2:

docker rm -f de4984c7ea98  //de4984c7ea98  为 CONTAIER_ID


你也可以删除所有容器,例如:

docker rm -f $(docker ps -a -q)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: