docker笔记
一、Linux下的docker安装
$ ls -l /sys/class/misc/device-mapper //查看os中是否有驱动程序 $ sudo apt-get install -y docker.io $ source /etc/bash_completion.d/docker.io $ sudo docker version
二、MacOS下的docker安装
1、Homebrew安装
$ brew install docker
2、官网下载安装包,有管理界面(推荐)
三、使用非root用户启动docker容器
$ sudo groupadd docker $ sudo gpasswd -a ${USER} docker
然后注销用户登陆,再重新登陆后即可省略sudo
四、容器的基本操作
//镜像相关 // 查看所有本地镜像 $ docker images //查看公有仓库中指定name的镜像,例如redis,rabbitmq等,—no-trunc属性使折叠的镜像描述完整显示 $ docker search [name] //拉取镜像到本地,如果只有镜像名,则默认拉取最新版本即latest,若想拉取指定版本,则先用浏览器登录docker hub查询镜像现有tag版本,然后在拉取镜像时添加上tag号 $ docker pull [image-name[:tag]] //删除镜像 $ docker rmi image-name //构建新镜像,将自己使用的容器构建为本地镜像 //通过容器构建镜像,-a 作者 -m 提交时的说明文字 -p 暂停正在执行的容器 $ docker commit container-name/container-id new-image-name[:tag] //通过Dockerfile文件构建镜像,-f Dockerfile 文件的位置,-t 构建的镜像的名字 $ docker build -f /path/to/local -t image-name[:tag] $ docker build url //或者使用url路径下的Dockerfile文件构建镜像 //查看镜像构建过程 $ docker history image-name //推送本地镜像到docker hub $ docker push image-name //容器相关 //运行容器,根据镜像新建一个匿名容器,该容器虽然无名但有容器号,而且这样运行容器会立刻开始执行容器中内容,完成后即刻停止容器。 $ docker run image-name //为容器添加容器名,容器名只能在新建容器时添加,故只有run命令才能加容器名 $ docker run --name container-name image-name //为容器添加端口映射,使外网能访问docker容器内提供的服务 $ docker run -p 主机映射端口:容器服务端口 image-name //以交互方式运行容器 $ docker run -i -t image-name //以守护进程方式运行容器,若容器处于交互模式下,可通过按键ctrl+p+q将其切换成后台模式 $ docker run -d image-name //将后台模式的容器提取到前台,即变为交互式 $ docker attach container-name/container-id //停止容器 //若处于交互模式,exit容器后容器立刻停止 //若处于后台模式,使用stop命令停止容器 $ docker stop container-name/container-id //重启处于停止状态的容器,-i 表示以交互方式启动 $ docker start container-name //删除容器 $ docker rm container-name //查看正在运行的容器 $ docker ps //查看所有存在的容器,包括运行中和已停止的容器 $ docker ps -a //查看容器信息,或查看镜像信息 $ docker inspect container-name/image-name
五、守护容器的基本操作
//查看容器日志,-f 一直跟踪日志的变化,-t 加时间戳,--tail 返回日志数量 $ docker logs [-f] [-t] [--tail] //查看运行容器的进程 $ docker top container-name //在运行容器中启动新进程,-d -i -t $ docker exec container-name