一、Docker安装
1.1卸载旧版本Docker(可选)
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.2安装yum工具
yum install -y yum-utils
1.3更新yum本地软件源
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.4安装Docker
yum install -y docker-ce
1.5关闭防火墙
#关闭防火墙
systemctl stop firewalld
#禁止开机自启
systemctl disable firewalld
1.6查看Docker版本
docker -v
1.7启动Docker
#启动Docker
systemctl start docker
#停止Docker
systemctl stop docker
#重启Docker
systemctl restart docker
1.8Docker国内镜像加速(可选)
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://h8uci20o.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
二、镜像操作
2.1访问镜像中心 :https://hub.docker.com/
搜索redis
2.2拉取镜像
docker pull redis
不加版本号默认最新版本
2.3查看镜像
docker images
2.4打包镜像
#docker save -o 导出文件名 镜像名或者镜像id
docker save -o redis.tar redis
2.5删除镜像
#docker rmi 镜像名
docker rmi redis
2.6导入镜像
#docker load -i 文件名称
docker load -i redis.tar
三、容器操作
3.1容器操作命令
docker run #新建并启动容器
docker start/stop/pause/unpause #启动/停止/暂停/恢复容器
docker exec #进入容器执行命令
docker logs #查看容器运行日志
docker ps #查看容器的状态
docker rm #删除指定容器
3.2Nginx容器示例
拉取Nginx镜像
docker pull nginx
创建并启动容器
docker run --name mynginx -d -p 80:80 nginx
#--name:指定容器名称
#-p:将宿主机端口与容器端口映射,格式:宿主机端口:容器端口
#-d:后台运行容器
3.3Redis容器示例
拉取redis镜像
docker pull redis
创建并启动容器
docker run --name myredis -d -p 6379:6379 redis
进入容器
docker exec -it myredis bash
#-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
#bash:进入容器后执行的命令
四、数据卷
数据卷操作的基本语法为: docker volume [COMMAND],其中COMMAND可 选值
create:创建一个volume;
inspect:显示一个或多个volume的信息
ls:列出所有的volume
prune:删除未使用的volume
rm:删除一个或多个指定的volume
4.1数据卷操作示例
创建数据卷
docker volume create testA
查看数据卷
docker volume ls
查看对应卷的详细信息
docker volume inspect testA
在linux的docker主机中创建一个卷时,其在宿主机对应的目录(挂载点)路径 为/var/lib/docker/volumes/卷名/_data
4.2挂载卷
docker run --name testAcon -v testA:/data -d redis
在宿主机var/lib/docker/volumes/卷名/_data下创建a.txt,容器/data下同样会有a.txt
一个容器可以使用多个卷,只需要多次使用-v选项指定即可
docker run --name testBcon -v testA:/data -v testB:/var/log -d redis
当指定的卷不存在时,docker会自动创建对应的卷,上述命令中的testB数据卷 会被自动创建
4.3绑定挂载
官方建议使用卷,而不是绑定挂载,但是,绑定挂载有一个优势,就是绑定挂 载可以直接将宿主机中的文件(非目录)直接挂载到容器中,比如,将宿主机 中的/etc/localtime文件映射到容器中的/etc/localtime文件
docker run -d --name testAcon -v /etc/localtime:/etc/localtime alpine