[TOC]java
docker經常使用命令
第一本docker書筆記
-
docker run -i -t ubuntu /bin/bashgit
- -i 保證容器中的STDIN是開啓的
- -t 爲建立的容器分配一個僞tty終端,新容器從而能提供一個交互式shell
- docker help run
- 基於ubuntu鏡像來建立容器
- 在新容器中要運行 /bin/bash 命令
- --restart=always
- --restart=on-failure:5 因爲某種錯誤致使容器中止運行後,會自動從新啓動該容器最多5次
-
docker top XXXgithub
-
docker exec -d XXX touch /etc/new_config_filedocker
- 在容器的內部額外啓動新進程:後臺任務 或 交互式任務
- 在XXX容器內部運行一個後臺進程,執行的操做是touch
-
docker exec -it XXXX /bin/bashshell
-
本地鏡像保存在 /var/lib/docker/containersubuntu
-
(基於已有的基礎鏡像)構建鏡像centos
- docker commit contiainerID repositoryName/containerName
- docker build + Dockerfile
- 執行步驟
- Docker 從基礎鏡像運行一個容器
- 執行一條指令,對容器作出修改
- 執行相似docker commit的操做,提交一個新的鏡像層
- Docker再基於剛提交的鏡像運行一個容器
- 執行Dockerfile中的下一條指令,直到全部指令都執行完畢
- RUN
- 在當前鏡像中運行指定的命令,會建立一個新的鏡像層,若是指令執行成功,會將此鏡像層提交
- 默認會在shell裏使用命令包裝器/bin/sh -c來執行
- 有exec格式的RUN指令
基本命令
- 檢查容器的主機名
- hostname
- cat /etc/hosts
- ip a
其它筆記
-
鏡像 & 容器bash
-
經常使用命令1ui
- docker create <image id>
- 爲指定的鏡像建立可讀可寫層,構成了一個新的容器
- 建立一個容器但不運行它
- docker start <container id>
- 爲容器文件系統建立了一個進程隔離空間
- 從新啓動一個已中止的容器(docker restart 也能夠)
- docker attach
- docker run <image id>
- 先是利用鏡像建立了一個容器,而後運行這個容器
- docker create和docker start兩個命令的組合
- docker ps
- docker ps -a
- docker images
- docker images -a
- docker stop <container-id>
- docker kill <container-id>
- docker pause <container-id>
- docker rm <container-id>
-
經常使用命令2spa
- docker info
- docker pull
docker pull registry.docker-cn.com/library/centos:7
- docker help
- docker search <image-name>
-
經常使用命令3
- 參考Docker退出容器不關閉容器的方法
- ctrl + p + q 退出登陸但不關閉鏡像
- docker attach ID 進入鏡像
- 使用docker start DOCKER-NAME啓動容器,docker exec ... 以後作修改,exit退出,再進入容器上次修改還在
-
經常使用命令4
- 啓動容器
docker run --name DOCKER_NAME -it -v /host_dir:/docker_dir IMAGE_NAME:TAG -p host_port:docker_port /bin/bash
IMAGE_NAME順序在-v以後
docker start DOCKER_NAME
docker exec -it DOCKER_NAME /bin/bash
- 退出容器
- 刪除容器
- 刪除鏡像
- 編寫啓動命令
alias g2d='docker exec -i -t $(docker ps -l -q) /bin/bash'
vi /usr/bin/startDocker
docker start DOCKER-NAME
docker exec -it DOCKER-NAME /bin/bash
-
經常使用命令5
- 從主機複製到容器
- docker cp host_path containerID:container_path
- 從容器複製到主機
- docker cp containerID:container_path host_path
-
經常使用命令6
-
容器權限控制
- --privileged
-
--cap-add
- --cap-drop
-
在docker中使用gdb以及ptrace
docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined
docker run --cap-add=SYS_PTRACE --security-opt seccomp:unconfined
- 參考
docker run --net=host --privileged --cap-add=SYS_PTRACE --name NAME -it IMAGE_NAME /bin/bash
-
參考