技术交流28群

服务热线

135-6963-3175

微信服务号

3、Docker容器使用 更新时间 2019-1-13 浏览2257次

Docker容器常用命令

以下命令使用mysql镜像启动一个容器,参数为以命令行模式进入该容器

docker run -it mysql /bin/bash

当报

docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: 
starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory": 
unknown.

错时,可以尝试用

docker run -it mysql /bin/sh

或者

docker exec -it containerId /bin/bash


参数说明:

-i: 交互式操作。

-t: 终端。

mysql: mysql 镜像。

/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

要退出终端,直接输入 exit:

$ exit

查看所有容器命令

docker ps -a

启动一个已停止的容器

$ docker start b750bbbcfd99

后台方式运行一个容器

$ docker run -itd --name mysql-test mysql /bin/bash

参数:

-d:后台运行

停止一个容器

docker stop b750bbbcfd99

重启一个容器

docker restart b750bbbcfd99

创建一个容器(但不启动它)

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
#例:
docker create  --name myrunoob  nginx:latest

docker run = docker create + docker start 进入容器

使用-d命令会使容器在后台运行,想要进入容器,则可以使用下面命令:

docker attach:此命令会导致容器停止。
docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

docker attach containerId
docker exec -it containerId /bin/bash

   

[root@localhost ~]# docker exec -it 5abf /bin/bash
root@5abf309c553b:/# ls
bin  boot  dev  docker-entrypoint-initdb.d  entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@5abf309c553b:/# exit
exit

删除容器命令:

docker rm containerId

选项:

-f强制删除一个运行中的 

-l删除容器的链接 

-v删除容器挂载的数据卷


重命名容器

docker rename 容器名 新容器名

查看日志命令

docker logs containerId

导出容器

docker export 容器id>xxxx.tar

导入容器

将快照文件 mysql.tar 导入到镜像 test/mysql:v1:

cat docker/mysql.tar | docker import - test/mysql:v1

使用远程方式导入

$ docker import http://example.com/exampleimage.tgz example/imagerepo

复制文件:

#从主机复制到容器
sudo docker cp host_path containerID:container_path
#从容器复制到主机
sudo docker cp containerID:container_path host_path


获取容器/镜像元数据

docker inspect 镜像名或镜像id


查看容器中正在运行的进程

docker top 容器id

来实现查看container中正在运行的进程。