突然要用到docker了,原因就是,我花了99块买的云服务器(避免打广告,不说哪家公司的了),重启之后,我的python3不见了,我的安装包也不见了,还有最开始的时候有一次,是重启还是装了什么软件,登陆不了,重置密码也不行,提了工单,售后说他们也进不去,让我重装系统,不再相信他们了,万一哪天想换服务器,拷贝服务器镜像就太大了,用docker吧!什么都装到docker里面.即便是换服务器厂商,我也不需要重新整环境了,
-
docker 安装/更新
参考: https://www.cnblogs.com/yufeng218/p/8370670.html
https://yq.aliyun.com/articles/110806?spm=5176.8351553.0.0.91491991QDEwYQ
更新yum包: sudo yum update
安装需要的软件包: sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker:sudo yum install docker-ce
启动docker:sudo systemctl start docker
重启docker: systemctl restart docker
设置开机启动: sudo systemctl enable docker
docker更新: sudo yum update docker-ce
-
镜像加速器
参考: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-&#39;EOF&#39;
{"registry-mirrors": ["https://p9gymz1y.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
-
拉去一个镜像
镜像: sudo docker pull centos
查看下载的镜像: docker images
删除镜像: docker rmi 镜像id
运行镜像: docker run centos /bin/echo “hello world”
-
docker 基本操作
docker其他操作参考: https://blog.csdn.net/xy3233/article/details/90473765
镜像运行后会变成容器
docker ps 查看正在运行中的容器
docker ps -a 查看已经存在的容器
docker rm 99b285551e9e 删除容器
进入交互式容器: docker run -i -t 镜像id /bin/bash
退出容器: Ctrl&#43;D
进入一个正在运行的容器: sudo docker exec -it 容器id /bin/bash
停止运行中的容器 docker stop 容器id
运行暂停的容器: docker start 容器id
docker run 命令
-d: 后台运行容器&#xff0c;并返回容器ID&#xff1b;
-i: 以交互模式运行容器&#xff0c;通常与 -t 同时使用&#xff1b;
-P: 随机端口映射&#xff0c;容器内部端口随机映射到主机的高端口
-p: 指定端口映射&#xff0c;格式为&#xff1a;主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端&#xff0c;通常与 -i 同时使用&#xff1b;
–name&#61;“nginx-lb”: 为容器指定一个名称&#xff1b;
重点端口映射: 参考: https://blog.csdn.net/chengxuyuanyonghu/article/details/76630617
运行一个镜像 并将80映射到8080
docker run -d -i -t -p 80:8080 镜像id
其他零碎知识参考这里:(容器随系统启动 文件拷进拷出)
https://blog.csdn.net/xy3233/article/details/90608517
-
docker 仓库操作
容器 -->镜像—> 到仓库 参考: https://blog.csdn.net/xy3233/article/details/90473765
下面的是使用阿里云docker仓库(阿里的可能快一些吧):
参考: https://newsn.net/say/docker-aliyun.html
https://yq.aliyun.com/articles/697988
容器打包成镜像
使用 docker commit生成新镜像
docker commit -a "fuly" -m "wechat 20200516" 1de39f5a1ec4 centos:v0516
-a 作者
-m 备注
1de39f5a1ec4 容器id
centos:v0516 下面显示
查看新生成的镜像docker images
将镜像推送到自己的仓库:
登陆: 阿里的docker
sudo docker login --username&#61;你的登陆名 registry.cn-hangzhou.aliyuncs.com
登出: docker logout registry.cn-hangzhou.aliyuncs.com
重新设置标签: sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/fuly_py_git/centos_py_git:[镜像版本号]
推送到仓库: sudo docker push registry.cn-hangzhou.aliyuncs.com/fuly_py_git/centos_py_git:[镜像版本号]
推送的时候很浪费时间,用 nohup & 让他慢慢推吧
从仓库中拉去镜像:
sudo docker pull registry.cn-hangzhou.aliyuncs.com/fuly_py_git/centos_py_git:[镜像版本号]