Docker 初试
安装
本次安装的是Docker version 17.03.0-ce, build 3a232c8
。基本上按照官方文档的步骤来安装就行。安装完成之后,会自动创建一个叫 docker
的群组,将当前用户加入该群组,可以方便的使用 docker。
sudo usermod -aG docker ${USER}
加入组之后,需要登出,并重新登录当前用户
最后,指定一下 registry-mirrors 并关闭 docker 对 iptables 的修改:
sudo vi /etc/docker/daemon.json { "registry-mirrors": ["https://tcy9rrzz.mirror.aliyuncs.com"], "iptables": false }
更新
sudo apt-get update apt search docker # 检查 docker-ce 是否有最新版本 sudo apt-get install docker-ce # 备注:安装完成后,所有的 container 都会被自动 stop,需要手动重启
docker-enter (out of date,可以用 docker exec 取代)
# start a container docker run --name nsenter -it ubuntu:14.04 bash ## in the docker apt-get update apt-get install git build-essential libncurses5-dev libslang2-dev gettext zlib1g-dev libselinux1-dev debhelper lsb-release pkg-config po-debconf autoconf automake autopoint libtool git clone git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git util-linux cd util-linux/ ./autogen.sh ./configure --without-python --disable-all-programs --enable-nsenter make ## from different shell - on the host docker cp nsenter:/util-linux/nsenter /usr/local/bin/ docker cp nsenter:/util-linux/bash-completion/nsenter /etc/bash_completion.d/nsenter
Tips
- docker container prune
- docker system prune
这两个命令比较有用,不过不能随便用,它们都会把当前没有运行的 container 清理掉,system prune
会导致相关的 volume 也被删掉,容易造成数据被误删除。目前我感觉比较好的实践,还是在临时执行 docker run
的时候,加入 --rm
参数,这样执行完毕之后,container 及其相关的资源会被自动清理掉,比较 clean。
目前来说,仅只学会了 docker 基本命令的使用。
关于 docker-compose
,尚未找到正确的打开方式。
目前为了避免数据在 container 被清理后丢失,采用的做法是:
- 挂载一个主机卷到 container 的
/backup
目录 - 将需要持久化的文件夹拷贝到
/backup
- 重新启动新的 container ,并通过
--volume
的方式,挂载/backup
对应的目录