docker从0开始

2019-01-07 17:22 更新

1. 安装Docker

    当前环境为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系统默认自带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官方仓库中的镜像

    支持的参数:

         --autometad=false 仅显示自动创建的镜像

         --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/

    若执行 docker-enter 命令时提示:nsenter:not found

    此时只需 find /var/lib/docker/aufs/ -name "nsenter" ,找到 nsenter 文件, 然后将此文件 copy 到 /bin/ 目录下即可。

4. docker 常用命令

4.1 docker build

    自己经常写 Dockerfile ,常用到 docker build 命令

创建 openwaf 仓库下的 debian8 镜像    
docker build -t openwaf:debian8 .
有时Dockerfile内容无变化,想要重新生成镜像,却不想用 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 


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号