當(dāng)前環(huán)境為Debian8
在Ubuntu 14.04及以上版本安裝Docker
wget -qO- https://get.docker.com/ | sh
$ sudo apt-get install apt-transport-https
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
$ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install -y lxc-docker
$ sudo apt-get update -y lxc-docker??
$ sudo apt-get update
$ sudo apt-get install -y docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
$ sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
使用?Ubuntu14.04系統(tǒng)默認(rèn)自帶docker.io安裝包安裝Docker,這樣安裝的Docker版本相對較舊,并不推薦使用。
$ sudo docker pull NAME[:TAG]
如 ?'$ sudo docker pull ubuntu',該命令實際下載的是 ubuntu:lastest 鏡像
此命令相當(dāng)于 '$ sudo docker pull registry.hub.docker.com/ubuntu:latest' 命令
即從默認(rèn)的注冊服務(wù)器? registry.hub.docker.com 中的 ubuntu 倉庫來下載標(biāo)記為 latest 的鏡像
2.2 查看鏡像信息
$ sudo docker images 可以列出本地主機上已有的鏡像
$ sudo docker inspect IMAGEID 可以獲取鏡像的詳細信息
2.3 搜尋鏡像
$ sudo docker search OpenWAF
默認(rèn)搜索 Docker Hub官方倉庫中的鏡像
支持的參數(shù):
--autometad=false 僅顯示自動創(chuàng)建的鏡像
--no-trunc=false ?輸出信息不截斷顯示
docker run -d 跑起一個容器后,使用 docker-enter 方便進入管理,代碼如下:
#!/bin/sh
if [ -e $(dirname "$0")/nsenter ]; then
# with boot2docker, nsenter is not in the PATH but it is in the same folder
NSENTER=$(dirname "$0")/nsenter
else
NSENTER=nsenter
fi
if [ -z "$1" ]; then
echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"
echo ""
echo "Enters the Docker CONTAINER and executes the specified COMMAND."
echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."
else
PID=$(docker inspect --format "{{.State.Pid}}" "$1")
if [ -z "$PID" ]; then
exit 1
fi
shift
OPTS="--target $PID --mount --uts --ipc --net --pid --"
if [ -z "$1" ]; then
# No command given.
# Use su to clear all host environment variables except for TERM,
# initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
# and start a login shell.
"$NSENTER" $OPTS su - root
else
# Use env to clear all host environment variables.
"$NSENTER" $OPTS env --ignore-environment -- "$@"
fi
fi
將 docker-enter 放入 /bin/ 目錄下
chmod +x docker-enter
cp -P docker-enter /bin/
若執(zhí)行 docker-enter 命令時提示:nsenter:not found
此時只需 find /var/lib/docker/aufs/ -name "nsenter" ,找到 nsenter 文件, 然后將此文件 copy 到 /bin/ 目錄下即可。
自己經(jīng)常寫 Dockerfile ,常用到 docker build 命令
創(chuàng)建 openwaf 倉庫下的 debian8 鏡像
docker build -t openwaf:debian8 .
有時Dockerfile內(nèi)容無變化,想要重新生成鏡像,卻不想用 docker 的cache
docker build --no-cache -t openwaf:debian8 .
刪除未運行的容器
docker rm container_id1 container_id2
強制刪除容器
docker rm -f container_id1 container_id2
刪除所有未運行容器
docker rm $(docker container ls -a -q)
強制刪除所有容器
docker rm -f $(docker container ls -a -q)
刪除鏡像
docker rmi image_id1 image_id2
用于查看 docker 鏡像
查看運行中容器
docker ps
查看所有容器
docker ps -a
4.5 docker
更多建議: