docker從0開始

2019-01-07 17:22 更新

1. 安裝Docker

    當前環(huán)境為Debian8

    在Ubuntu 14.04及以上版本安裝Docker

1.1 方法一:簡化版安裝docker

  wget -qO- https://get.docker.com/ | sh

1.2 方法二:從?Docker官方源安裝最新版本

  $ 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??

1.3 方法三:docker.io

  $ 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)默認自帶docker.io安裝包安裝Docker,這樣安裝的Docker版本相對較舊,并不推薦使用。

2. 鏡像

2.1 獲取鏡像

  $ sudo docker pull NAME[:TAG]

如  ?'$ sudo docker pull ubuntu',該命令實際下載的是 ubuntu:lastest 鏡像

此命令相當于 '$ sudo docker pull registry.hub.docker.com/ubuntu:latest' 命令

即從默認的注冊服務器? registry.hub.docker.com 中的 ubuntu 倉庫來下載標記為 latest 的鏡像

2.2 查看鏡像信息

  $ sudo docker images          可以列出本地主機上已有的鏡像
  $ sudo docker inspect IMAGEID 可以獲取鏡像的詳細信息

2.3 搜尋鏡像

  $ sudo docker search OpenWAF

    默認搜索 Docker Hub官方倉庫中的鏡像

    支持的參數(shù):

         --autometad=false 僅顯示自動創(chuàng)建的鏡像

         --no-trunc=false    ?輸出信息不截斷顯示

3. docker-enter

    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/ 目錄下即可。

4. docker 常用命令

4.1 docker build

    自己經(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 .

4.2 docker rm

刪除未運行的容器
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

4.3 docker images

用于查看 docker 鏡像

4.4 docker ps

查看運行中容器
docker ps
查看所有容器
docker ps -a

4.5 docker 


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號