Docker 常用【容器】命令
  TEZNKK3IfmPf 2023年11月14日 67 0

容器常用命令

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

Docker 常用【容器】命令

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

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

docker run -it centos /bin/bash

Docker 常用【容器】命令

② 退出并关闭容器 

exit

 Docker 常用【容器】命令

 ③ 不关闭并退出容器

ctrl + P + Q

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

docker start 容器ID或者容器名 

Docker 常用【容器】命令

Docker 常用【容器】命令

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

docker restart 容器ID或者容器名 

Docker 常用【容器】命令

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

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

Docker 常用【容器】命令

Docker 常用【容器】命令

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

Docker 常用【容器】命令

curl http://localhost:81

Docker 常用【容器】命令

Docker 常用【容器】命令

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

配置前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

Docker 常用【容器】命令

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

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

Docker 常用【容器】命令

二、查询容器

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

Docker 常用【容器】命令

三、删除容器

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删除 

Docker 常用【容器】命令

2. 根据容器名删除

Docker 常用【容器】命令

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

docker rm -f $(docker ps -qa)

Docker 常用【容器】命令

四、守护式容器命令

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

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

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

docker run -d --name mynginx nginx

Docker 常用【容器】命令

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

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

Docker 常用【容器】命令

五、查看docker容器日志

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

1. 查看容器所有日志

docker container logs 容器ID

Docker 常用【容器】命令

2. 跟随查看容器日志

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

Docker 常用【容器】命令

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

Docker 常用【容器】命令

Docker 常用【容器】命令

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

docker attach 容器ID

Docker 常用【容器】命令

Docker 常用【容器】命令

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年04月26日   57   0   0 Docker
  TEZNKK3IfmPf   2024年03月29日   99   0   0 Docker
TEZNKK3IfmPf