1.解决的问题
统一标准 docker hub 所有软件制作成镜像 容器化技术代替虚拟化技术
资源隔离
2.安装
#1卸载旧版本docker
yum remove docker*
#2安装工具包
yum install -y yum-utils
#3添加安装源地址
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#4安装
yum install docker-ce docker-ce-cli containerd.io
#5启动 并设置开机自启动
systemctl enable docker --now
#6查看docker详细信息
docker info
#7配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://bejnc76o.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3.命令实战
a镜像操作
docker pull nginx #默认下载最新版本
docker pull nginx:1.20.1 #下载指定版本
docker images #查看所有镜像 下载的镜像都在本地
docker rmi redis #删除镜像 默认删除最新版本 或者删除id
b容器操作
docker run --name=mynginx -d nginx #--name=mynginx 取个名字 -d 后台运行
docker ps -a #查看所有容器
docker ps #查看正在运行中的容器
docker stop #停止容器
docker rm 容器id/名字 #删除停止的容器
docker rm -f 容器id/名字 强制删除正在运行中的容器
docker start #启动容器 #如果服务器重启了,
设置开机自启 --restart=always 默认是no
docker update 容器id/名字 --restart=always 更新设置自动重启。
-p 80:80端口映射 主机端口/容器端口
docker logs 容器id 查看容器运行日志排错
c修改容器内的内容
#进入容器命令行修改
docker exec -it 容器id /bin/bash
exit 退出
#挂载数据到外部修改
-v 主机目录:容器目录:ro或者rw 设置其他权限 只能在外部修改
#把容器内部的文件复制到本机服务器上 也可以把外边的复制到容器内部。
docker cp 容器id:路径/xx.conf /data/conf/xx.conf
d提交改变
#可以把正在运行的容器提交成一个新镜像 方便以后启动
docker commit -a "fengguangbao" -m "首页变化" 容器id guigunginx:v1.0
#会生成一个新镜像 直接启动
e镜像保存和推送
#第一种 文件压缩包形式
docker save -o xxx.tar 镜像id:tag #镜像的id和版本号 将镜像打包成压缩包
scp xxx.tar root@ip:/root/ #把文件传输到ip服务器下的root目录 需要输入密码
#别的机器可以加载这个镜像
docker load -i xxx.tar
#第二种方法 推送镜像仓库
首先docker hub 创建个仓库
docker tag guignginx:v1.0 leifengyang/guignginx:v1.0
docker login 登录 docker logout退出(推送完镜像后退出 安全!)
docker push leifengyang/guignginx:v1.0
其他服务器可以docker pull 下载。