前言

简单记录一下学习过程中涉及到的docker操作,以后会坚持更新这篇文章的

启动所有容器

docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

关闭所有容器

docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

删除所有容器

docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)

删除所有镜像(慎用)

docker rmi $(docker images | awk '{print $3}' |tail -n +2)

启动环境

docker-compose up -d

移除环境

docker-compose down

查看当前所有容器,status字段可以看到当前容器所处的状态,up表示容器处于启动状态。

docker ps -a

进入容器

三种方法都可以,第一种是最通用的方法

0x01

进入容器,我这里是开了一个Oracle的容器,先要看一下CONTAINER ID,再使用下面的命令进入

docker exec -it 2cabbcc27e7d bash

0x02

docker attach 容器id,这种方法进入容器会存在一个问题,当多个终端同时进入容器时,所有窗口会同步显示,所以不太适合生产环境使用。

docker attach 3a3afa942911

0x03

使用nsenter进入容器

docker inspect -f {{.State.Pid}} 3a3afa942911 #首先查看容器的pid

nsenter --target 15202 --mount --uts --ipc --net --pid   #根据获取到的pid进入容器

退出容器

容器里面

对于直接使用exit和快捷 方式(Ctrl+D)退出的容器,如果还想重新启动,需要使用命令 docker start 容器id或容器名称

容器外面

#停止容器
docker stop 容器名/id

#重新启动容器
docker start 容器名/id(已经停止的容器)