前言:初学docker的一些记录
docker信息
docker:有两个版本:docker-ce(社区版)和docker-ee(企业版)
docker hub 镜像库
卸载docker
1 | sudo apt-get remove docker docker-engine docker.io |
docker安装
安装docker
1 | sudo spt-get update |
安装docker社区版
1 | sudo apt-get install docker-ce |
安装docker企业版
1 | sudo apt-get install docker-engine |
查看docker版本
1 | docker -v |
如果资源被锁
1 | sudo rm /var/cache/apt/archives/lock |
docker-compose安装
1 | $ sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose |
docker基本命令
- 镜像与容器的关系同类与实例
启动 systemctl start docker
守护进程重启 sudo systemctl daemon-reload
重启docker服务 systemctl restart docker
重启docker服务 sudo service docker restart
关闭docker service docker stop
关闭docker systemctl stop dockerdocker search <镜像名称> 搜索镜像
docker pull <镜像名称>:<标签> 从镜像库拉取镜像
docker images 查看镜像
docker ps 查看容器
docker rm <容器名称> 删除容器
docker rmi <镜像名称/镜像ID>:<标签> 删除镜像
docker run 创建容器
docker logs 查看日志
docker load 导入镜像
docker save 导出镜像
docker commit 从容器的修改汇中创建镜像
docker start <容器名称/容器ID> 启动容器
docker restart <容器名称/容器ID> 重启容器
docker stop <容器名称/容器ID> 停止容器
docker attach <容器名称/容器ID> 连接容器
docker exec <容器名称/容器ID>从外部运行容器内的命令docker history 查看镜像历史
docker cp 复制文件
docker diff 检查容器文件的修改
docker inspect 查看详细信息
docker images 列出镜像
在列出信息中,可以看到五个字段信息:
- repository:仓库,比如 ubuntu
- tag:镜像的标记,比如 laster
- image id:它的 ID 号(唯一)
- created:创建时间
- size:镜像大小
docker run
1 | docker run [OPTIONS] IMAGE [COMMAND] [ARG...] |
example
1 | sudo docker run --name hello -d -p 80:80 -v /root/data:/data hello:0.1 |
-p 80:80 选项将主机的80号端口与容器的80号端口连接起来,并暴露到外部。这样设置好,连接http://<主机IP>:80就会连接到容器的80号端口
-v /root/data:/data选项将主机的/root/data目录连接到容器的/data目录。若将文件放入/root/data目录,则能从容器读取响应文件
docker ps
1 | -a :显示所有的容器,包括未运行的、终止的容器 |
docker images
1 | -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层); |
docker attach
docker attach <容器名称>
连接一个正在运行的容器,执行该命令后回车,显示Bash shell
1 | docker attach CONTAINER ID |
在Bash shell中输入exit或ctrl+D终止容器,若依次输入ctrl+P、ctrl+Q,则不会终止容器而只推出
查看docker
1 | // 查看镜像历史 |
docker错误
权限 需使用root
1 | #docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。 |