0


Docker 常用【容器】命令

Centos7 下载|安装|配置|卸载 Docker:https://liush.blog.csdn.net/article/details/129664121

Centos7 常用【基础|镜像】命令:https://liush.blog.csdn.net/article/details/129665015

容器常用命令

**docker run IMAGE **

新建启动容器

**docker ps **

查看所有正在运行的容器

**exit **

停止并退出容器

**ctrl + P + Q **

不停止退出容器

**docker start 容器ID或者容器名 **

启动容器

**docker restart 容器ID或者容器名 **

重启容器

**docker stop 容器ID或者容器名 **

停止容器

**docker kill 容器ID或者容器名 **

强制停止容器

**docker rm 容器ID **

删除已停止的容器

**docker logs 容器ID **

查看容器日志

**docker top 容器ID **

查看容器内运行的进程

**docker exec -it 容器ID /bin/bash **

在容器中打开新的终端,并且可以启动新的进程

**docker attach 容器ID **

直接进入容器启动命令的终端,不会启动新的进程

**docker cp 需要拷贝的文件或目录 容器名称:容器目录 **

拷贝文件到容器指定目录下

**docker inspect 容器ID或者容器名 **

查看容器细节

一、新建并启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
** --name="容器新名字" ****# 为容器指定一个名称;**
** -d ****# 后台运行容器,并返回容器ID,也即启动守护式容器;**
** -i ****# 以交互模式运行容器,通常与 -t 同时使用;**
** -t ****# 为容器重新分配一个伪输入终端,通常与 -i 同时使用;**
** -P ****# 随机端口映射,并将容器内部使用的网络端口映射到我们使用的主机上;**
** -p # 指定端口映射,有以下四种格式
** **** ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort # 将containerPort映射到主机上的hostPort端口
containerPort

** -v 主机目录:容器目录 ****# 挂载 宿主机的目录挂载到容器的指定目录 **

1. 新建容器指定一个名称

docker run --name=testname hello-world

2. 交互模式运行容器并分配一个伪输入终端

① 执行后进入到容器内部,只有简单的linux命令可以使用

docker run -it centos /bin/bash

**② 退出并关闭容器 **

exit

** ③ 不关闭并退出容器**

ctrl + P + Q

3. 根据容器ID或名字 启动

**docker start 容器ID或者容器名 **

4. 根据容器ID或名字 重启

**docker restart 容器ID或者容器名 **

5. 本地内容拷贝到容器目录下

**docker cp 需要拷贝的文件或目录 容器名称:容器目录 **

6. 创建启动容器映射端口号,访问测试

# 配置容器映射到宿主机中的端口号
docker run -d --name 容器名 -p 宿主机端口号:容器内的端口号 镜像名称[:tag]
# 绑定宿主机ip+端口号: 只能通过绑定的ip和端口号 访问容器
docker run -d --name 容器名 -p ip:宿主机端口号:容器内的端口号 镜像名称[:tag]

docker run -d --name mynginx -p 81:80 nginx

curl http://localhost:81

注:如果访问失败,可能是网络问题或者防火墙没关!

配置前docker容器因为需要监听宿主机的端口号,有可能出现ipv4通信失败的问题,解决办法如下:

**# 修改配置文件:
vim /usr/lib/sysctl.d/00-system.conf

添加内容

net.ipv4.ip_forward=1

保存退出 重启网络 **

systemctl restart network

# 重启容器

docker restart 容器名

7. 创建容器挂载卷(挂载本地文件到容器内)

创建docker容器时,将本地目录挂载到nginx容器指定目录下,将来可以访问nginx中的资源

docker run -d --name=mynginx -p 81:80 -v /opt/html:/opt/ nginx

cp 拷贝到容器中的文件,容器中的是副本,宿主机和容器互不影响!

挂载后的目录中,宿主机修改后,容器内核宿主机文件一致!

二、查询容器

docker ps [OPTIONS]
** -a ****# 列出当前所有正在运行的容器+历史上运行过的**
** -l ****# 显示最近创建的容器。**
** -n ****# 显示最近n个创建的容器。 docker ps -n 3**
** -q ****# 静默模式,只显示容器编号。**
** --no-trunc ****# 不截断输出。**

三、删除容器

docker rm 容器ID** # 删除指定容器**
**docker rm 容器Name ****# 根据容器名删除容器**

**docker rm $(docker ps -a -q) ****# 删除所有容器,正在运行的容器无法删除**
**docker rm -f $(docker ps -a -q) ****# 删除所有容器,包括正在运行的容器**
**docker ps -a -q | xargs docker rm ****# 删除所有容器,不包括正在运行的容器**

**1. 根据容器ID删除 **

2. 根据容器名删除

3. 删除所有容器,包括正在运行的容器

docker rm -f $(docker ps -qa)

四、守护式容器命令

执行命令 docker run 容器名 创建并启动容器,然后docker ps -a 进行查看, 会发现容器已经退出。

容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。这个是docker的机制问题:容器后台启动后,如果他觉得他没事可做会立即自杀。

**1. 台模式启动一个容器用守护式命令 **

docker run -d --name mynginx nginx

2. 创建并启动docker容器 脚本

docker run -d --name=mycentos centos /bin/bash -c "while true;do echo hello zzyy;sleep 2;done"

五、查看docker容器日志

以后容器创建或者启动失败,可以通过日志分析错误原因!

1. 查看容器所有日志

docker container logs 容器ID

2. 跟随查看容器日志

docker logs -f -t --tail n 容器ID** ****# 查看容器日志 **
** -t ****# 是加入时间戳**
** -f ****# 跟随最新的日志打印**
** --tail 数字 ****# 显示最后多少条**

**ctrl+c 可以退出跟随查看 **

六、重新进入docker

**docker exec -it 容器ID或名字 /bin/bash ****# 在容器中打开新的终端,并且可以启动新的进程**

# 打开新的终端进入容器:exit退出容器时,容器不会关闭
docker attach 容器ID **** # 直接进入容器启动命令的终端,不会启动新的进程

# 直接进入容器使用容器自己的终端:exit退出容器时,容器会关闭
**docker exec -it 容器ID ls -l /tmp ****# 在容器外执行docker内命令**

1. 在容器中打开新的终端,并且可以启动新的进程

docker exec -it 容器ID /bin/bash

2. 直接进入容器启动命令的终端,不会启动新的进程

docker attach 容器ID

标签: docker 容器 运维

本文转载自: https://blog.csdn.net/qq_45037155/article/details/129665476
版权归原作者 书启秋枫 所有, 如有侵权,请联系我们删除。

“Docker 常用【容器】命令”的评论:

还没有评论