1、首先查看已有的鏡像文件:
指令:docker images?
2、將鏡像打包成本地文件
指令:兩種方式
(1)docker save [鏡像id] > [文件名.tar]
(2)docker save -o [文件名.tar] [鏡像id]
3、在另一臺主機加載本地文件到鏡像
指令:docker load? < 文件名.tar
4、鏡像重命名
執(zhí)行完上述語句后,通過docker images查看本地鏡像,會看到新加載的鏡像名字和標簽都是none,利用該鏡像的id對名字和標簽重新命名即可:
指令:docker tag 鏡像id 鏡像名:標簽? ? ? ?(標簽可以是容器的版本號)
5、創(chuàng)建容器
指令:
docker run -it --name [指定一個用于與其它容器區(qū)分的name] -it
如果需要容器內(nèi)部訪問外部文件可以追加參數(shù) -v [/home/dir:/home/dir]
運行時設置容器映射端口
docker run -i -t -d -p 9000:80 容器name
5 其它一些命令
docker ps -a? 列出所有在運行的容器
docker images 列出所有鏡像
docker exec -it 容器id /bin/bash? 進入容器
docker rm? id? 刪除容器? ps查到的
docker rmi id? 刪除鏡像? images 查到的
啟動/關閉容器? ?docker start/stop 容器id
退出容器 ctrl D
容器內(nèi)文件或文件夾和宿主機之前相互傳遞??
指令:docker cp?
都是容器外執(zhí)行
例:docker cp 容器id:/var/..? /home/..宿主機目錄
6、要保存對一個docker容器的改動怎么辦?答案:commit
上面用的save和load用于把已經(jīng)存在的鏡像在服務器之間搬運,而對一個容器做了改動之后,可以通過commit命令把容器生成成鏡像,然后就可以通過save和load搬運了
docker commit [容器id] [起一個鏡像名]
之后就可以通過docker images查看生成的鏡像了
7、docker run 之后生成的container不是root權限
如果執(zhí)行docker run 是root用戶執(zhí)行的,生成的container不是root的話,在docker run時加參數(shù):-u root
8、docker tag
如果我通過docker save存出來一個image,load到另一臺機器的話,可能load出來的image的repository和tag都是none
所以用docker tag給它標記
docker tag imageID 名字:tag
9、關于docker exec進入容器
一般是,docker exec -it 容器名或id bash
-it很重要,如果不加的話其實執(zhí)行完這條命令就退出容器了
bash其實就是進入容器使用的命令,就相當于dockerfile里最后那個CMD命令,就是說CMD命令是可以在docker run或exec的時候替換最后的bash的。