Docker入门学习

Docker安装

​
yum install -y yum-utils
​
配置镜像
yum-config-manager     --add-repo     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
​
yum makecache
​
安装docker
yum install docker-ce docker-ce-cli containerd.io
​
启动docker
systemctl start docker
​
查看版本
docker version
​
启动镜像run
docker run hello-world

(一)docker 基础命令

启动docker

systemctl start docker

关闭docker

systemctl stop docker

重启docker

systemctl restart docker

docker设置随服务启动而自启动

systemctl enable docker

查看docker 运行状态

------如果是在运行中 输入命令后 会看到绿色的active
​
systemctl status docker

查看docker 版本号信息

docker version
docker info

docker 帮助命令

忘记了某些命令便可使用此进行查看与回顾

docker --help

比如 咱忘记了 拉取命令 不知道可以带哪些参数 咱可以这样使用

docker pull --help

(二)docker 镜像命令

查看自己服务器中docker 镜像列表

docker images
#获取所有镜像的 名称:版本:id:创建时间:大小
docker images -a 
#获取所有镜像的id
docker images -q

搜索镜像

docker search 镜像名
docker search --filter=STARS=9000 mysql 搜索 STARS(收藏数)>9000的 mysql 镜像

拉取镜像 (就像应用市场下载软件)不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

docker pull 镜像名 
docker pull 镜像名:tag

下载的策略是分层下载

docker官方镜像搜索

运行镜像 

docker run 镜像名
docker run 镜像名:Tag
--name="Name"   给容器起名
-d              后台方式运行
-it             使用交互方式,进入容器查看内容
-p              指定容器端口 -p 8080:8080
    -p ip主机端口:容器端口
    -p 主机端口:容器端口(常用)
    -p 容器端口
    容器端口
-P              随机指定端口

删除镜像

当前镜像没有被任何容器使用才可以删除

#删除一个
docker rmi -f 镜像名/镜像ID
​
#删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
​
#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
​
​

强制删除镜像

docker image rm 镜像名称/镜像ID

保存镜像

将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像

命令:

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字

exmaple:

docker save tomcat -o /myimg.tar

加载镜像

任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像

docker load -i 镜像保存文件位置

(三)容器命令

列出容器

docker ps 
     # 列出当前正在运行的容器
-a   # 列出当前正在运行的容器+历史运行过的容器
-n=? # 显示最近创建的容器
-q   # 只显示容器的编号 

新建容器并启动

docker run [可选参数] image
​
# 参数说明
--name="Name"   #给容器命名
-d              #后台方式运行,ja nohup
-it             #使用交互方式运行
-p              指定容器端口 -p 8080:8080
    -p ip主机端口:容器端口
    -p 主机端口:容器端口(常用)
    -p 容器端口
    容器端口
-P              随机指定端口

退出容器

exit         # 直接容器停止并退出
Ctrl + P + Q # 容器不停止并推出

删除容器

docker rm 容器id                #删除指定容器,不能删除正在与运行中的容器
docker rm -f $(docker ps -aq)  #删除所有容器
docker ps -a -q|xargs docker rm #删除所有容器

容器开启关闭

docker start 容器id       #开启容器
docker restart 容器id     #重新开启容器
docker stop 容器id        #关闭容器
docker kill 容器id        #杀死容器

后台启动容器

docker run -d centos #后台启动centos
#问题:使用docker ps查看发现centos停止了
#常见的坑:docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
#Nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

查看日志

docker logs
#docker logs -tf --tail 行数 容器id
docker logs -tf --tail 10 d2656f3c2a62 
​
-tf         #显示日志
--tail 数量  #显示指定数量

查看进程

docker top 容器id

查看容器累不信息

docker inspect 容器id

进入正在运行的容器

#进入容器开启一个新的终端,可以在里面操作
docker exec -it(以交互模式) 容器id 容器启动行(COMMAND)
#进入容器正在执行的终端,不会启动新的线程
docker attach 容器id

从容器内拷贝文件

docker cp 容器id:容器内路径 目的地主机路径
#例子
docker cp d2656f3c2a62:/home/hello.txt /home
​

commit镜像

docker commit 提交容器成为一个新的副本
​
# 命令和git原理类似
docker commit -m=“提交的描述信息” -a=“作者” 容器id 目标镜像名:[版本]
​
#例如提交修改过webapps的docker镜像
docker commit -a="ling" -m="add new tomcat2" 43ffc0462269 tomcat02:1.0
​

容器数据卷:

什么是容器数据卷

数据卷是存在于一个或多个容器中的特定文件或文件夹,这个文件或文件夹以独立于 docker 文件系统的形式存在于宿主机中。数据卷的最大特定是:其生存周期独立于容器的生存周期

使用数据卷的最佳场景:

  • 在多个容器之间共享数据,多个容器可以同时以只读或者读写的方式挂载同一个数据卷,从而共享数据卷中的数据。

  • 当宿主机不能保证一定存在某个目录或一些固定路径的文件时,使用数据卷可以规避这种限制带来的问题。

  • 当你想把容器中的数据存储在宿主机之外的地方时,比如远程主机上或云存储上。

  • 当你需要把容器数据在不同的宿主机之间备份、恢复或迁移时,数据卷是很好的选择。

容器的持久化和同步操作,容器间也可以数据共享。当我们在容器内部操作数据,那么数据卷就会自动同步到操作系统相应映射的位置,完成持久化操作。

docker run -it -v 主机文件:容器文件 镜像文件名 工作目录
#例如将容器centos的home目录下的文件挂载到主机的home/ceshi目录下
docker run -it -v /home/ceshi:/home centos /bin/bash
​
#启动后可以使用inspect查看挂在状态mounts属性
docker inspect 容器id

初始Dockerfile

Dockerfile就是用来构建docker镜像文件的构建文件,命令脚本。

通过这个脚本可以自动生成镜像,镜像是一层一层的,脚本一个个命令,每个命令都是一层。

#创建一个dockerfile文件
#文件中的内容 指令(大写) 参数
​
#表示该镜像是基于centos的
FROM centos
#指出挂载文件的挂在卷(这时就会在容器中创建这两个文件夹,属于匿名挂在,所以映射的主机文件目录需要使用inspect命令查看mounts属性中的主机挂载地址)
VOLUME ["volume01","volume02"]
#命令行
CMD echo "----end----"
#命令行
CMD /bin/bash

挂载镜像命令:

docker build -f dockerfile文件名 -t 镜像命名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aristocrat l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值