突然要用到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/mirrorssudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "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.youkuaiyun.com/xy3233/article/details/90473765
镜像运行后会变成容器
docker ps 查看正在运行中的容器
docker ps -a 查看已经存在的容器
docker rm 99b285551e9e 删除容器
进入交互式容器:docker run -i -t 镜像id /bin/bash
退出容器: Ctrl+D
进入一个正在运行的容器:sudo docker exec -it 容器id /bin/bash
停止运行中的容器docker stop 容器id
运行暂停的容器:docker start 容器id
docker run 命令
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的高端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name=“nginx-lb”: 为容器指定一个名称;
重点端口映射: 参考: https://blog.youkuaiyun.com/chengxuyuanyonghu/article/details/76630617
运行一个镜像 并将80映射到8080docker run -d -i -t -p 80:8080 镜像id
其他零碎知识参考这里:(容器随系统启动 文件拷进拷出)
https://blog.youkuaiyun.com/xy3233/article/details/90608517 -
docker 仓库操作
容器 -->镜像—> 到仓库 参考: https://blog.youkuaiyun.com/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=你的登陆名 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:[镜像版本号]