Docker
1.1使用脚本自动安装
curl -sSL https://get.docker.com/ | sh
阿里云的安装脚本
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh
DaoCloud 的安装脚本
curl -sSL https://get.daocloud.io/docker | sh
1.2.启动 Docker 引擎
sudo service docker start
1.3.建立 docker 用户组
建立 docker
组:
$ sudo groupadd docker
将当前用户加入 docker
组:
$ sudo usermod -aG docker $USER
1.4.NVIDIA Docker
# Install nvidia-docker and nvidia-docker-plugin
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmpvidia-docker*.deb
1.5 Docker-enter 命令
cd /tmp; curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-; cd util-linux-2.24;
./configure --without-ncurses
make nsenter && sudo cp nsenter /usr/local/bin
wget https://www.kernel.org/pub/linux/utils/util-linux/v2.29/util-linux-2.29.tar.xz; tar xJvf util-linux-2.29.tar.xz
cd util-linux-2.29
./configure --without-ncurses && make nsenter
sudo cp nsenter /usr/local/bin
更简单的,建议大家下载 .bashrc_docker 并将内容放到 .bashrc 中
wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker;
echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc
docker-pid
可以获取某个容器的 PID;而
docker-enter
可以进入容器或直接在容器内执行命令。
$ echo $(docker-pid <container>)
$ docker-enter <container> ls
1.6 Compose
sudo pip install -U docker-compose
默认的模板文件名称为 docker-compose.yml
,格式为 YAML 格式。
version: "2"
services:
webapp:
image:
examples/web
ports:
-
"80:80"
volumes:
-
"/data"
注意每个服务都必须通过 image
指令指定镜像或 build
指令(需要 Dockerfile)等来自动构建生成镜像。
如果使用 build
指令,在 Dockerfile
中设置的选项(例如:CMD
, EXPOSE
, VOLUME
, ENV
等) 将会自动被获取,无需在 docker-compose.yml
中再次设置。
1.7 docker user group
#新建用户组,存在则跳过
sudo cat /etc/group | docker
sudo groupadd -g 999 docker
#在用户组增加当前用户
sudo gpasswd -a ${USER} docker
重启
sudo service docker restart
切换到当前用户,或者重启x
newgrp -docker
or
pkill X