Docker安装及使用

一、什么是Docker

docker帮助文档:https://docs.docker.com/engine/reference/commandline/build/
网易蜂巢镜像中心:https://c.163yun.com/hub#/home

docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以放笔,书包可以放书,可以把hello word放在docker中,可以把网站放入docker中,可以把任何想得到的程序放在docker中.

1.1 docker三要素

![在这里插入图片描述](https://img-blog.csdnimg.cn/819ebec006e746bfabdf741ba8f8c1bb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASF9wb3JyaWRnZQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
  • 镜像(image):
    docker镜像就好像一个模板,可以通过这个模板来创建容器服务,tomcat容器===>run==>tomcat01容器(提供服务),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中)。
  • 容器(contianer):
    Docker利用容器技术,独立运行一个或者一个应用,通过镜像来创建的。
    启动、停止、删除、基本命令
    目前就可以把这个容器理解为一个linux系统。
  • 仓库(repository):
    仓库就是存放镜像的地方!
    仓库分为公有仓库和私有仓库!
    Docker Hub (默认是国外的)
    阿里云、网易云 都有容器服务器(配置镜像加速)

二、安装docker

卸载原有的docker

  	yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

Docker安装及使用_第1张图片

安装工具包

yum install -y yum-utils

Docker安装及使用_第2张图片

设置镜像仓库(这里使用的是阿里云的镜像仓库)

yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件索引包:(这步也可省略)

yum makecache faster

安装docker :

yum install docker-ce docker-ce-cli containerd.io

Docker安装及使用_第3张图片

启动docker:

systemctl start docker

使用 docker version 查看是否安装成功

docker version

Docker安装及使用_第4张图片
这样docker就安装成功了

三、docker常用的命令

3.1基本

3.1.1 启动docker

systemctl start docker

3.1.2 停止docker:

systemctl stop docker

3.1.3 重启docker:

systemctl restart docker

3.1.4 查看docker状态:

systemctl status docker

3.1.5 开机启动:

systemctl enable docker

3.2帮助命令

3.2.1 显示版本的信息

docker version

3.2.2 显示docker的系统信息 包括镜像和容器的数量

docker info

3.2.3 万能命令

docker 命令 --help

3.3镜像命令

3.3.1 查看本地主机上的所有镜像

docker images 	
docker images -a, --all 			   #列出所有镜像
docker images -q,--quit			   #只显示镜像的id

在这里插入图片描述

  • 解释
    REOISIRORY #镜像的仓库源
    TAG #镜像的标签
    IMAGE ID #镜像的id
    CREATED #镜像的创建时间
    SIZE #镜像的大小

3.3.2 搜索镜像

docker search 镜像名
docker search 镜像名 --filter==stars=3000  #搜索出来的镜像是大于3000

3.3.3 下载镜像

docker pull 镜像名:版本号     #不加版本号默认为最新版本

使用网易蜂巢镜像中心:https://c.163yun.com/hub#/home

3.3.4 删除镜像

#删除一个
docker rmi -f 镜像ID

#删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像ID 镜像ID 镜像ID

#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
#强制删除镜像
docker image rm 镜像ID

3.3.5 更改镜像名字

docker tag 镜像id 镜像名:版本号 

3.3.6运行镜像

docker装在哪台服务器 那台服务器 就是其宿主机)8888 端口进行映射 那通过外部访问宿主机8888端口 即可访问到 docker 容器 6379 端口了

docker run [可选参数] image
docker run -d --name mysql01 -p 8888:3306 mysql:5.7.16 /bin/bash
#参数说明
/bin/bash       #交互路径
--name mysql01	#容器名字 可为 mysql01 mysql02
-d 				#后台方式运行
-it				#使用交互方式运行,进入容器查看内容
-p				#指定容器端口
-p ip:宿主机端口:容器端口
-p 宿主机端口:容器端口
-p 容器端口
-v    				#卷挂载
-e 				#环境配置
--restart=always

3.4容器命令

3.4.1运行容器

docker run -it centos /bin/bash

3.4.2查看正在运行的容器:

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

3.4.3进入容器

docker exec -it 容器名/容器ID /bin/bash
docker attach 容器名/容器ID
  • 区别:
    exec 进入容器开启一个新的终端,可以在里面操作。
    attach 进入容器正在执行的终端,不会启动新的进程 。

3.4. 4退出容器

exit
Ctrl + p + q

3.4. 5停止容器

docker stop 容器ID/容器名

3.4.6重启容器

docker restart 容器id

3.4.7启动容器

docker start 容器ID/容器名

3.4.8强制停止当前容器

docker kill 容器ID/容器名

3.4.9容器文件拷贝

#docker cp 容器ID/名称:文件路径  要拷贝到外部的路径   |     要拷贝到外部的路径  容器ID/名称:文件路径
#从容器内 拷出
docker cp 容器ID/名称: 容器内路径  容器外路径
#从外部 拷贝文件到容器内
docker  cp 容器外路径 容器ID/名称: 容器内路径

3.4.10查看容器日志

docker logs -f -t --tail 条数 容器id
#-tf 显示日志
#--tail number # 要显示日志条数

3.4.11查看容器中的进程信息

docker top 容器id

3.4.12查看镜像的元数据

docker inspect 加容器id

3.4.13更换容器名

docker rename 容器ID/容器名 新容器名

3.4.14删除容器

docker rm 容器ID

四、docker容器数据卷

  • 简介
    容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复!

4.1方式一:直接使用命令在挂载 -v

-v 宿主机文件存储位置:容器内文件位置
-v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置

示例(docker启动mysql:)

docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7

4.2具名挂载和匿名挂载:

4.2.1匿名挂载:

-v 容器内路径

4.2.2查看具体挂载:

docker volume ls

4.2.3具名挂载:

-v 卷名:容器内路径

4.2.4查看具体卷的路径

docker volume inspect 卷名

4.2.5拓展:

-v 容器内路径:ro   rw   改变读写权限
ro  #readonly  只读
rw  #readwrite  可读可写

五、DockerFile

  • 简介:
    就是用来构建docker镜像文件!就是脚本命令

构建步骤:

1.编写一个dockerfile文件
2.docker build 构建成为一个镜像
3.docker run 运行一个镜像
4.docker push 发布镜像(阿里云。dockerhub)

文件内容如下:

FROM centos
VOLUME ["volume01","volume02"]
CMD echo ".....end"
CMD /bin/bash

通过命令构建:

docker build -f 文件路径 -t abc/centos . 

挂载:(–volumes-from)

在这里插入图片描述
DockerFIle命令:
Docker安装及使用_第5张图片

FROM  		#基础镜像一切从这里开始
MAINTAINER	#镜像是谁写的,姓名加邮箱
RUN		#镜像构建时需要的命令
ADD		#步骤tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR		#镜像工作目录
VOLUME		#挂载的位置
EXPOSE		#暴露端口
CMD		#指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT	#指定这个容器启动时要运行的命令,可以追加
ONBUILD		#当构建一个被继承DockerFile,这个时候就会运行ONBUILD的指令,触发指令
COPY		#类似ADD,将命令拷贝到镜像当中 
ENV		#构建的时候设置环境变量

实战tomcat:
1.准备镜像文件,tomcat压缩包,jdk的压缩包!
2.编写dockerfile文件,官方命名:Dockerfile,build会自动寻找这个文件,就不需要-f指令
Docker安装及使用_第6张图片
提交自己的镜像:

登录:https://hub.docker.com/
docker login -u h12345600
docker push 作者/镜像名

阿里云镜像:
1.找到容器镜像服务中心
2.创建命名空间
3.创建容器镜像

六、Docker网络

通过 --link 可以使容器间联通。

在这里插入图片描述
Docker安装及使用_第7张图片
自定义网络:
Docker安装及使用_第8张图片
Docker安装及使用_第9张图片
自定义创建:

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

可以通过 docker network ls 查看所有网络模式
通过–net mynet 连接到我们自己的网络上面去

网络连通:

docker network connect 容器名 网卡

在这里插入图片描述

实战创建三主三从redis

Docker安装及使用_第10张图片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

你可能感兴趣的:(docker,docker)