很早以前准备学一下 Kubernetes 的参加软件杯,加之期末考试很多,后面因为种种问题,导致只学了 Docker , Kubernetes 给搁置了,其实当时只学了一半,笔记然后想着以后也用不上,就给删除了。 Docker 笔记 的话,就是当作水博客了

1.找镜像

docker镜像平台 ,找到需要的 docker 镜像

docker pull nginx            #下载最新版
#镜像名:版本名    (标签)
docker pull nginx:1.20       #nginx1.20版本
docker pull redis            #redis 镜像 , 默认最新版本
docker pull redis:latest     #指定 下载 最新版本
##下载来的镜像都在本地
docker images                #查看本地所有镜像

2.创建与启动容器


docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run [设置项]  [镜像名] [镜像启动运行的命令(镜像里面默认有的,一般不会写)]
docker run nginx    #运行创建 nginx
docker run --name=自定义昵称 -d nginx

#    -name                 //设置容器昵称
#    -d                    //后台运行
#    --restart=状态        //设置容器开机是否自启,状态有“always”与“no”
#    -p 服务器端口:容器服务器端口        //映射端口
#    -v 本地路径:容器路径:ro            //容器内部文件地址映射到本地
#                       :ro            //只读模式
#                       :rw            //读写模式

docker update 容器昵称/ID --restart=always
docker start 容器昵称/ID 
//再次启动容器,或者说运行已有容器

3.查看当前运行容器

docker ps
#查看当前运行容器
docker ps -a
#查看容器历史详细

4.删除镜像与容器

镜像与容器不同,镜像是镜像,容器是容器

docker rmi 镜像名:版本号/镜像ID        #删除镜像
docker stop 容器昵称/ID               #停止容器 
docker rm 容器昵称/ID                 #删除停止的容器
docker rm -f 容器昵称/ID              #强制删除容器

5.进入容器

docker exec -it 容器ID /bin/bash
#进入容器内部的系统,修改容器内容

6.提交改变

将已修改的镜像另存为新镜像

docker commit -a "文本介绍" -m "写那些内容修改了" 容器ID  镜像名:版本

7.镜像保存

本地推送

#将镜像保存为压缩包
docker save -o  保存的文件名.tar   提交改变的镜像名:版本
#在别的机器加载这个镜像
docker load -i 保存的文件名.tar

仓库推送

docker tag 本地镜像名:版本号  docker平台用户名/仓库名:版本
#先标记要推送的镜像
docker login
#要登陆才能push到docker容器平台上面去
docker push  docker平台用户名/仓库名:版本
#上传 docker镜像
docker logout
#推送完成后镜像推出

Linux文件下载到Windows本地

scp -r ubuntu@IP:/Linux路径/文件名.tar D:\Windows路径

8.补充

docker logs
#查看容器的运行日志
docker run -d -p 888:80 \
-v /data/html:/usr/share/nginx/html:ro \
-v /data/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
--name=mynginxtest \
nginx

#docker 经常修改nginx配置文件

9.部署中间件

部署一个Redis + 应用, 尝试应用操作Redis产生的数据
#redis使用自定义配置文件启动
docker run -v /data/redis/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
-d --name myredis \
-p 6379:6379 \
redis:latest redis-server /etc/redis/redis.conf