yum install docker;systemctl status docker 咱们启动docker的时候,docker会帮咱们建立一个docker 0的网桥linux
查看当前镜像 docker images 搜索镜像 docker search 执行docker search centos 会从dockerhub上搜索镜像 下载镜像 docker pull centos docker pull nginx 导出镜像 docker save -o [镜像名称] [镜像] docker save -o centos.tar centos 导入镜像 docker load --input centos.tar 删除镜像 docker rmi [docker ID IMAGE ID] docker rmi 0f3e07c0138fnginx
root@3:/data# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos latest 0f3e07c0138f 2 months ago 220 MB docker.io/hello-world latest fce289e99eb9 11 months ago 1.84 kB
提示:若是镜像已经建立了一个容器,那么将没法进行删除docker
docker rm carcat docker rm -f carcat docker run --rm centos /bin/echo "test" docker ps -acentos
docker run centos docker run centos /bin/echo 'Hello Word' 咱们能够看到,如今容器并无启动。由于docker启动须要在前台启动一个进程。容器的名称能够咱们指定或自动生成 提示: 管理docker容器能够经过名称也能够经过IDbash
docker ps -a ps指的是正在运行的容器 -a 指的是显示不运行工具
我要新建一个testdocker的容器,它的镜像是centos 包含三个参数 容器起一个名称 -t 分配一个伪终端 -i 让docker的标准输入打开{input} docker run --name testdocker -t -i centos /bin/bash 提示:最后的/bin/bash能够省略,可是最后一个若是不是命令,那就是镜像的名称spa
docker attach testdocker 这种相似于linux系统中的单用户模式 生产场景不用docker attach 用nsenter这个工具,这个工具包含在util-linux软件包里面3d
root@jenkins:/data/jenkins# docker start testdocker testdocker root@jenkins:/data/jenkins# docker inspect -f "{{ .State.Pid }}" testdocker 120574 root@jenkins:/data/jenkins# nsenter -t 120574 -m -u -i -n -p
#每个容器都有.State.Pid,因此这个命令除了容器的id须要咱们根据docker ps -a去查找,其余的所有为固定的格式 nsenter --target上面查到的进程id --mount --uts --ipc --net --pid #输入该命令便进入到容器中code
* –mount参数是进去到mount namespace中 * –uts参数是进入到uts namespace中 * –ipc参数是进入到System V IPC namaspace中 * –net参数是进入到network namespace中 * –pid参数是进入到pid namespace中 * –user参数是进入到user namespace中
#!/bin/bash docker_in(){ NAME=$1 PID=$(docker inspect -f "{{ .State.Pid }}" $NAME) nsenter -t $PID -m -u -i -n -p } docker_in $1 root@jenkins:/data/docker# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b4c57453d79e centos "/bin/bash" 8 minutes ago Up 7 minutes testdocker e5f27a377ce8 centos "/bin/bash" 19 minutes ago Up 10 minutes abcdocker root@jenkins:/data/docker# sh docker_in.sh testdocker [root@b4c57453d79e /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
咱们也能够不进入容器进行查看 docker exec testdocker ps -ef 提示:可使用exec参数,不进入容器查看内容 用下面命令进入容器中 docker exec -it abcdocker /bin/bash 可是最好仍是少使用exec,有可能会对容器形成一些意外的影响进程