1 搜索镜像

搜索centos镜像

docker search centos

Docker基础命令

  • NAME:镜像名称
  • DESCRIPTION :描述信息
  • STARS:类似于点赞
  • OFFICIAL:是否为Docker官方发布
  • AUTOMATED:是否为自动构建(第三方构建)

 

2 拉取镜像

docker pull centos

Docker基础命令

 

3 查看下载的镜像

docker images

Docker基础命令

 

4 删除镜像

docker rmi redis

Docker基础命令

 

5 把镜像下到本地

docker save redis > /root/redis.tar.gz

Docker基础命令

 

6 把本地镜像导入docker

docker load < /root/redis.tar.gz

Docker基础命令

 

7 创建并启动一个容器

docker run -it --name my_redis redis /bin/bash

  • run :创建并启动
  • -i :交互模式标准输入打开
  • -t :启动一个tty终端
  • --name my_redis :my_redis 容器名称 --name给容器起一个名称
  • redis : 镜像名称
  • /bin/bash:执行的一条命令

Docker基础命令

进入容器后如果我们要退出容器改怎么办那?

第一种方法 输入exit

Docker基础命令

这里我们能看到exit退出后容器就关闭了,这是为什么那,我们在进入一下这个容器看一下

Docker基础命令

能看到容器中只运行了一个bash进程,使用exit退出会关闭bash这个进程,这时候容器中就没有任何运行的进程了,就会触发docker默认机制:如果一个容器中没有任何运行进程会自动关闭容器 所以如果使用attach选项进入容器这种退出方法很不可取。

那么attach选项进入容器后该如何安全的退出那?

第二种方法 组合键

按住Ctrl 再按p 再按q(p和q不是同时哦)

退出后查看容器状态

Docker基础命令

read escape sequence不是命令哦 是按组合键后返回的信息

 

8 查看容器状态

docker ps  查看运行中的容器

docker ps -a 查看所有容器包括停止的

Docker基础命令

 

9 关闭/启动一个容器

docker stop my_centos

docker start my_centos

Docker基础命令

 

10 删除镜像/容器

删除镜像

docker rmi redis

Docker基础命令

这里要注意:如果使用镜像创建了容器(哪怕没有启动),我们这么删除镜像会报错无法删除

Docker基础命令

我们必须要先删除使用该镜像穿件的容器,然后才能删除镜像

删除容器

删除容器的时候会有两种情况,1 容器已停止运行  2  容器正在运行

docker rm my_redis (my_redis是容器名称NAMES)

 

删除正在运行的容器

Docker基础命令

直接删除会报错无法删除,两种方法删除正在运行的程序

1 先关闭容器 再删除

Docker基础命令

2 强制删除正在运行的容器

docker rm -f my_redis

Docker基础命令

删除完所有使用redis镜像创建的容器后我们就可以删除镜像了

Docker基础命令

 

10 进入容器方法

进入容器的方法有3中

1 attach (不推荐方法)

进入方法

docker attach my_centos

不推荐的原因,

  • 1退出问题,如果不小心使用了exit退出整个容器都会关闭
  • 2 安全性,当你使用attach进入容器,另一个人也使用attach进入同一个容器,这样你在容器中所有的操作会实时的反应到另一人的屏幕中,就像VNC一样。

Docker基础命令

 

2 exec

docker exec -it my_centos /bin/bash
Docker基础命令

可以看到 进程中有两个/bin/bash 所以当exit退出的时候容器是不会关闭的,别人使用exec登录通一个容易 也不会同步显示当前操作

 

3 利用 nsenter 命令

如果没有nsenter命令安装util-linux包

yum –y install util-linux

这种方法进入容器必须要先获取容器进程的pid

docker inspect --format "{{.State.Pid}}" 08625bf95617

6793

[[email protected] ~]# nsenter -t 23409 -u -i -n -p

这样exit退出容器后 容器还会继续运行

Docker基础命令

 

启动容器脚本

vim enter_docker.sh

#!/bin/bash

docker ps -a

read -p "输入要进入的Docker名称:" NUM
PID=$(docker inspect --format "{{.State.Pid}}" $NUM)

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

Docker基础命令

 

 

 

 

 

 

 

 

相关文章:

  • 2021-06-02
  • 2022-03-02
  • 2021-12-10
  • 2021-04-15
猜你喜欢
  • 2021-04-14
  • 2022-02-20
相关资源
相似解决方案