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,有可能會對容器形成一些意外的影響進程