Docker 的简单使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41558061/article/details/84305701

例如,我们需要拉取一个 Docker 镜像,我们可以用如下命令:
docker pull image_name

image_name 为镜像的名称,而如果我们想从 Docker Hub 上去下载某个镜像,我们可以使用以下命令:
docker pull centos:latest

cento:lastest 是镜像的名称,Docker Daemon 发现本地没有我们需要的镜像,会自动去 Docker Hub 上去下载镜像,下载完成后,该镜像被默认保存到 /var/lib/docker 目录下。

接着我们如果想查看主机下存在多少镜像,我们可以用如下命令:
docker images

我们要想知道当前有哪些容器在运行,我们可以用如下命令:
docker ps -a

-a 是查看当前所有的容器,包括未运行的。我们该如何去对一个容器进行启动,重启和停止呢?

我们可以用如下命令:

docker start container_name/container_id
docker restart container_name/container_id
docker stop container_name/container_id

这个时候我们如果想进入到这个容器中,我们可以使用 attach 命令:

docker attach container_name/container_id

那如果我们想运行这个容器中的镜像的话,并且调用镜像里面的 bash ,我们可以使用如下命令:

docker run -t -i container_name/container_id /bin/bash

那如果这个时候,我们想删除指定镜像的话,由于 Image 被某个 Container 引用(拿来运行),如果不将这个引用的 Container 销毁(删除),那 Image 肯定是不能被删除。

我们首先得先去停止这个容器:

docker ps
docker stop container_name/container_id

然后我们用如下命令去删除这个容器:

docker rm container_name/container_id

然后这个时候我们再去删除这个镜像:

docker rmi image_name

当我们需要进入某一个正在运行的容器内有两种方法:
1,attach:(不推荐使用)

docker attach container_id  # 根据ID进入容器
exit # 退出容器

attach总结:一个容器指定一个进程,这个容器退出了。他的生成周期也就结束了,也就退出了。
2,nsenter:(推荐使用)

[root@docker-node1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6cdf5b727719        centos              "/bin/bash"         25 minutes ago      Up 5 minutes                            mydocker
[root@docker-node1 ~]# docker inspect --format "{{.State.Pid}}" 6cdf5b727719
8340
[root@docker-node1 ~]# nsenter -t 8340 -u -i -n
[root@10ca2734bd30 ~]#

nsenter使用总结 (当退出容器后,还能让容器再后台运行。推荐使用这个命令进入容器)

还想偷点懒可以编写一个shelldocker.sh脚本来进入容器

#!/bin/bash
PID=$(docker inspect --format "{{.State.Pid}}" $1)
nsenter -t $PID -u -i -n
chmod u+x shelldocker.sh #给脚本赋予可执行权限
./shelldocker.sh container_id  # 执行脚本进入容器

此时,常用的 Docker 相关的命令就讲到这里为止了,我们在后续的文章中还会反复地提到这些命令。

猜你喜欢

转载自blog.csdn.net/weixin_41558061/article/details/84305701