B站配套视频:https://www.bilibili.com/video/BV1sK4y1s7Cj
另一位热心大佬的笔记:https://www.cnblogs.com/eden-libinglin/p/13803729.html
docker的基本操作
docker安装
安装命令
sudo apt-get install docker.io
安装成功后查看版本信息
sudo docker version
启动docker
systemctl start docker
设置开机自启动
systemctl enable docker
测试
docker run hello-world
命令执行情况如下
docker的中央仓库
1、docker的官方仓库,这个仓库镜像是最全的,但是下载速度较慢
2、国内的镜像网站:
网易蜂巢:https://c.163yun.com/hub#/home
daoCloud(推荐使用):http://hub.daocloud.io/
3、在有的公司内部会采用私服的方式拉取镜像。
镜像的操作
拉取镜像到本地(tag是版本号)
docker pull 镜像名称[:tag]
举个例子
docker pull daocloud.io/library/tomcat:8.5.15-jre8
查看全部本地镜像
docker images
删除本地镜像(镜像id可通过docker images获得)
docker rmi 镜像的id
镜像的导入导出(不规范)
# 将本地镜像导出
docker save -o 导出的路径 镜像id
# 加载本地镜像文件
docker load -i 镜像文件
# 修改镜像名称
docker tag 镜像id 新镜像名称:版本
容器的操作
运行容器
# 简单操作
docker run 镜像id或镜像名称[:tag]
# 常用操作
# -d: 代表后台运行
# -p 宿主机端口:容器端口:映射端口
# --name 容器名称:指定容器的名称
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像id或镜像名称[:tag]
# 例如
docker run -d -p 8081:8080 --name hello bf
查看正在运行的容器
# -a: 查看所有容器,包括没有运行的
# -q:只查看容器得到的标识
docker ps [-qa]
查看容器的日志
# -f:可以滚动查看日志的最后几行
docker logs -f 容器id
进入到容器内部
docker exec -it 容器id bash
停止容器
docker stop 容器id
启动容器
docker start 容器id
删除容器(删除容器前需先停止容器)
docker rm 容器id
# 例如: docker rm $(docker ps -qa)
数据卷
将宿主机的一个目录映射到容器的一个目录中
可以在宿主机中操作目录的内容,那么内部映射的文件,也会跟着一起改变。
创建数据卷
docker volume create 数据卷名称
# 创建数据卷之后,默认会存放在一个目录下 /var/lib/docker/volumes/数据卷名称/_data
查看数据卷的详细信息
docker volume inspect 数据卷名称
查看全部数据卷
docker volume ls
删除数据卷
docker volume rm 数据卷名称
应用数据卷
# 当你映射数据卷时,如果数据卷不存在,docker会帮你自动创建一个,会将
# 容器内部自带的文件存储在默认的存放路径中。
docker run -v 数据卷名称:容器内部的路径 镜像id
# 也可以直接指定一个路径作为数据卷的存放位置。这个路径是空的。
docker run -v 路径:容器内部的路径 镜像id
Docker自定义镜像
# 1.创建一个Dockerfile文件,并且指定自定义镜像信息。
# Dockerfile文件常用的内容:
from: 指定当前自定义镜像的依赖环境
copy: 将相对路径下的内容复制都自定义镜像中
workdir: 声明镜像的默认工作目录
cmd: 需要执行的命令(在workdir下执行的,cmd可以写多的,只以最后一个为准)