當ubuntu版本在14.0.1以上則可以直接安裝docker稚瘾,因為ubuntu系統(tǒng)中自帶docker安裝包,但是由于有其他軟件占據了“docker”這個名稱钥庇,所以ubuntu的軟件倉庫中docker叫做“docker.io”巨柒。
1.系統(tǒng)自帶方式安裝
1嘱么、用系統(tǒng)自帶的軟件包安裝docker:
$ sudo apt-get update
$ sudo apt-get install docker.io
2、如果不是root用戶則需要使用sudo柒傻,否則會出現(xiàn)以下錯誤:
想要某個非root用戶免sudo使用docker孝赫,則將該用戶加入docker用戶組中:
$ sudo gpasswd –a [用戶名] docker
$ sudo service docker restart
$ newgrp – docker
最后一步非常有必要,因為group命令是獲取緩存的組信息红符,剛生成的組信息不會即時生效青柄,所以需要切換會話到新的group。
2.使用Docker源安裝
一般ubuntu系統(tǒng)所帶的docker版本相對比較低预侯,想要安裝新版的docker需要使用docker源安裝致开。
1、使用docker源進行安裝需要apt-transport-https的支持萎馅,所以首先安裝apt-transport-https
$ sudo apt-get install apt-transport-https
2双戳、將docker官網資料庫的訪問key添加到本地系統(tǒng)
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
3、將最新的docker源添加到本地docker.list中
$ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
4糜芳、安裝docker
$ sudo apt-get update
$ sudo apt-get install lxc-docker
3.docker-enter安裝
1飒货、安裝nsenter
apt-get install build-essential
wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz
tar zxvf util-linux-2.24.tar.gz
cd util-linux-2.24
./configure --without-ncurses
make nsenter
cp nsenter /usr/local/bin
2、在/usr/local/bin下創(chuàng)建shell腳本 docker-enter峭竣,將如下代碼保存為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
3塘辅、修改docker-enter腳本的權限
chomod +x docker-enter
4、運行 docker-enter <container id> 邪驮,這樣就進入到指定的容器中