docker

一:docker概述

1.为什么会出现docker?
由于我们的项目想要运行起来需要相关环境,比如:项目的运行需要mysql,red is,jdk等环境,所以自己的项目在自己的电脑上运行可以是因为环境都已经配好,而我们的项目想要其他人在他们的电脑中运行起来,需要配置进行环境的配置,由此产生疑问,有没有一种方法在我们发布项目的时候,带上环境安装的包。
docker应用而生,在开发好一个项目后,把项目和环境(镜像)进行打包,其他人用的时候直接下载镜像运行就可以了。
2、docker的思想
隔离:打包装箱,每个箱子都是互相隔离的。docker通过隔离机制,可以将服务器利用到极致。
3、docker和虚拟机技术的不同
1)传统虚拟机,虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件。
2)容器内的应用直接运行在宿主机内,容器是没有自己的内核的,也没有虚拟我们的硬件,所以比较轻便。
3)每个容器是互相隔离的,每个容器都有一个属于自己的文件系统。

二:docker安装

docker组成
在这里插入图片描述
镜像:通过这个镜像去创建一个容器服务,tomcat==>run==>tomcat01容器,通过这个镜像可以创建多个容器,而且最终服务运行或者项目运行是在容器中的。
容器:可以简单的把它理解为一个简易的Linux系统
仓库:就是存放镜像的地方,分为共有仓库和私有仓库
2.安装
在这里插入图片描述

三:相关命令

一:帮助命令
docker --version //显示版本信息
dcoker info 显示docker的系统信息,包括镜像和容器的数量
二:镜像命令
1、docker images 查看多有本地主机上的镜像
可选项:
-a ,–all 列出所有镜像
-q,–quiet 只显示镜像的ID
2、docker search 搜索镜像
可选项:
–filter=STARTS=3000 搜索出来的镜像为starts大与3000的
3、docker pull 下载镜像(默认下载最新版本)
4、docker rmi 删除镜像
-f 容器ID 删除指定的容器
-f $(docker images -aq) 删除全部的容器

容器相关命令

[root@iZuf62zl9erupnz3mccvp2Z ~]# docker ps #列出当前正在运行的容器
CONTAINER ID   IMAGE     COMMAND                  CREATED      STATUS      PORTS                               NAMES
fc28d395c8ce   mysql     "docker-entrypoint.s…"   6 days ago   Up 6 days   0.0.0.0:3306->3306/tcp, 33060/tcp   dazzling_poitras
[root@iZuf62zl9erupnz3mccvp2Z ~]# docker ps -a #列出当前正在运行的容器和历史运行的容器
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                      PORTS                               NAMES
0c683f712afd   nginx          "/docker-entrypoint.…"   12 minutes ago   Exited (0) 11 minutes ago                                       sad_mestorf
fc28d395c8ce   mysql          "docker-entrypoint.s…"   6 days ago       Up 6 days                   0.0.0.0:3306->3306/tcp, 33060/tcp   dazzling_poitras
bcfc1be5c86e   nginx          "/docker-entrypoint.…"   6 days ago       Exited (0) 6 days ago                                           nginx00
72c7070105f4   redis          "docker-entrypoint.s…"   2 months ago     Exited (137) 2 months ago                                       redis-test
cb6e06a09f28   rabbitmq       "docker-entrypoint.s…"   4 months ago     Exited (0) 2 months ago                                         rabbit
b6259416eb8f   mysql          "docker-entrypoint.s…"   5 months ago     Exited (0) 5 months ago                                         stupefied_tharp
1c8e6ded728c   mysql          "docker-entrypoint.s…"   5 months ago     Exited (100) 5 months ago                                       vigilant_lehmann
3cbe0e6c7c90   ecac195d15af   "docker-entrypoint.s…"   5 months ago     Exited (1) 5 months ago                                         wonderful_williams
18945bebd357   ecac195d15af   "docker-entrypoint.s…"   7 months ago     Exited (1) 7 months ago                                         jovial_germain
[root@iZuf62zl9erupnz3mccvp2Z ~]# docker ps -n=1
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS                      PORTS     NAMES
0c683f712afd   nginx     "/docker-entrypoint.…"   15 minutes ago   Exited (0) 14 minutes ago             sad_mestorf
[root@iZuf62zl9erupnz3mccvp2Z ~]# docker ps -n=2
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS                      PORTS                               NAMES
0c683f712afd   nginx     "/docker-entrypoint.…"   15 minutes ago   Exited (0) 14 minutes ago                                       sad_mestorf
fc28d395c8ce   mysql     "docker-entrypoint.s…"   6 days ago       Up 6 days                   0.0.0.0:3306->3306/tcp, 33060/tcp   dazzling_poitras
[root@iZuf62zl9erupnz3mccvp2Z ~]# docker ps -n=? #显示最近创建的容器,参数写几就是最近创建的几个
[root@iZuf62zl9erupnz3mccvp2Z ~]# docker ps -q #只显示容器编号
fc28d395c8ce
[root@iZuf62zl9erupnz3mccvp2Z ~]# docker exec -it bbd7a19838c8 /bin/bash
root@bbd7a19838c8:/# exit #退出容器
exit

删除镜像相关命令
以下是删除mysql:5.6镜像
[root@iZuf62zl9erupnz3mccvp2Z ~]# docker images #查看镜像
REPOSITORY              TAG                IMAGE ID       CREATED        SIZE
nginx                   latest             605c77e624dd   5 months ago   141MB
redis                   latest             7614ae9453d1   6 months ago   113MB
mysql                   5.6                dd3b2a5dcb48   6 months ago   303MB
mysql                   latest             3218b38490ce   6 months ago   516MB
rabbitmq                latest             d445c0adc9a5   6 months ago   220MB
hello-world             latest             feb5d9fea6a5   9 months ago   13.3kB
rabbitmq                3.8.3-management   867da7fcdf92   2 years ago    181MB
xuxueli/xxl-job-admin   2.1.2              cfe34e8d6785   2 years ago    227MB
[root@iZuf62zl9erupnz3mccvp2Z ~]# docker rmi mysql:5.6 #删除mysql:5.6镜像,如果mysql:5.6有相关容器正在运行,则先把容器删除。
Untagged: mysql:5.6
Untagged: mysql@sha256:20575ecebe6216036d25dab5903808211f1e9ba63dc7825ac20cb975e34cfcae
Deleted: sha256:dd3b2a5dcb48ff61113592ed5ddd762581be4387c7bc552375a2159422aa6bf5
Deleted: sha256:8c5e3b50c7085016b7c692611fdedacba442aa0f4ccf8739f4ecf4d5e49b7d91
Deleted: sha256:2ff31bb829f16adc374868d9ef59254f394816aadfeb6b45da5bec5dcde45540
Deleted: sha256:91bcc75c6967ec46f3f19fa96f248ab3a23589788f9e2c4a1a2e032112def863
Deleted: sha256:127296d2ee30c8716069dc23d015d9ecaa1544d0a2c44712db128ae6a9cb1431
Deleted: sha256:fe36f45d1760f56c23a9957254682d74aa6e7fba931dc8f11addf75684b1aa69
Deleted: sha256:8d6550c8cb1e10f9d0cf1ee3061ecef9e2cb333cdfbf58a02ee27cf2dd5fc35a
Deleted: sha256:64e278d98d2502416e0c55646e919f0080a50f9a342b0e28aa9c43655518d3aa
Deleted: sha256:013f70419be70a06c8e4ce898f2dac82be8749cb9979d9e5b1c98dd82519f627
Deleted: sha256:c49bbc9eeced1247fcd625da3e2c2886e89b15a6264899a9ce32cd21d927912e
Deleted: sha256:031797b961ee18c70bff1f3b53cea52f643dbaef6a5ecb0e98fc2696e8b039a5
Deleted: sha256:2b83e5699838047f936a3875bcce7fe1b169983bf86785ae7519c5bc488558ae
[root@iZuf62zl9erupnz3mccvp2Z ~]# docker images
REPOSITORY              TAG                IMAGE ID       CREATED        SIZE
nginx                   latest             605c77e624dd   5 months ago   141MB
redis                   latest             7614ae9453d1   6 months ago   113MB
mysql                   latest             3218b38490ce   6 months ago   516MB
rabbitmq                latest             d445c0adc9a5   6 months ago   220MB
hello-world             latest             feb5d9fea6a5   9 months ago   13.3kB
rabbitmq                3.8.3-management   867da7fcdf92   2 years ago    181MB
xuxueli/xxl-job-admin   2.1.2              cfe34e8d6785   2 years ago    227MB

删除容器
docker rm 容器ID #删除指定的容器,不能删除正在运行的容器,如果要强制删除rm -f
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm # 删除所有的容器
启动和停止容器的操作
dcoker start 容器ID
docker restart 容器ID
docker stop 容器ID
docker kill 容器ID #强制停止当前容器

四:docker数据卷

为了在删除容器的时候,防止容器里的相关数据丢失,所以需要保存容器中的数据到本地。也因此有了数据挂载。
docker run -it -v(数据挂载) 目录(Linux):目录(容器) 镜像名
-d 后台运行
-p 端口映射
-v 数据挂载
–name 容器名
-e 环境配置
具名挂载和匿名挂载 :
1.匿名挂载
-v 容器内路径
docker run -d -p --name nginx01 -v /etc/nginx nginx
查看所有的volume的情况
docker volume ls
2.具名挂载

所有docker容器内的卷入锅没有具体指定目录的情况下,都是在/var/lib/docker/volumes/xxx/_data

五:dockerFile

dockerFile是用来构建docker镜像的文件
一:构建步骤:
1.编写一个dockerFile文件
2.docker build 构建一个镜像
3.docker run 运行镜像
4.docker push 发布镜像
二:dockerFile基础命令
FROM #基础镜像,一切从这里开始构建
MAINTAINER #镜像是谁写的,姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD #添加内容
WORKDIR #镜像的工作目录
VOLUME #挂载的目录
EXPOSE # 保留端口配置
CMD #指定这个容器启动的时候需要运行的命令,只有最后一个会成效,可被替代
ENTRYPOINT #指定这个容器启动的时候需要运行的命令,可以追加命令
COPY # 将我们的命令拷贝到镜像中
ENV #构建的时候设置环境变量
三:创建一个自己的centos
1.编写dockerfile文件
vim mydockerfile-centos
2.构建镜像
docker build -f mydockerfile-centos(dockerfile文件路径) -t mycentos:0.1(镜像名) .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值