🧆初识Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何影响

一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器

🍩docker常用命令

🎂docker 基础命令

安装docker

yum install docker

启动docker

systemctl start docker

关闭docker

systemctl stop docker

重启docker

systemctl restart docker

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

systemctl enable docker

查看docker运行状态

systemctl status docker

查看docker版本号信息

docker versiondocker info

🍰docker帮助命令

帮助查看某些命令

docker --help

🥧镜像命令

查看官方镜像

查看镜像列表

docker imagesdocker images -a

搜索镜像

docker serch 镜像名docker search --filter=STARS=版本 镜像名

拉取镜像

不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

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

运行镜像

docker run 镜像名 docker run 镜像名:Tag

删除镜像

删除一个

docker rmi -f 镜像名/镜像ID

删除多个 其镜像ID或镜像用用空格隔开即可

docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID

docker rmi -f $(docker images -aq)

保存镜像

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

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

例如

docker save tomcat -o /myimg.tar

加载镜像

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

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

重命名镜像

通过tag打标签

docker tag (旧镜像IMAGE ID简写) (新镜像名:版本)

🍝容器命令

查看正在运行容器列表

docker ps

查看所有容器 -----包含正在运行 和已停止的

docker ps -a

运行一个容器

-it 表示 与容器进行交互式启动

-d 表示可后台运行容器 (守护式运行)

--name 给要运行的容器 起的名字

/bin/bash 交互路径

docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash

停止容器

docker stop 容器名/容器ID

删除容器

删除一个容器

docker rm -f 容器名/容器ID

删除多个容器 空格隔开要删除的容器名或容器ID

docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID

删除全部容器

docker rm -f $(docker ps -aq)

容器端口与服务器端口映射

虚拟网卡通过物理机映射端口供外界访问传输协议

-p 宿主机端口:容器端口

进入容器

docker exec -it 容器名/容器ID /bin/bash

退出容器

从容器内 退出到自己服务器中 需注意 两个退出命令的区别

直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭

exit

优雅提出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭

Ctrl + p + q

停止容器

docker stop 容器ID/容器名

重启容器

docker restart 容器ID/容器名

启动容器

docker start 容器ID/容器名

kill 容器

docker中kill和rm的区别:1、docker中kill命令会直接发送SIGKILL信号杀掉容器,而rm命令会删除一个或多个容器;2、rm命令会删除容器运行中产生的数据,而kill命令不会删除容器运行中产生的数据。

docker kill 容器ID/容器名

容器文件拷贝

docker cp 命令用于在容器和本地文件系统之间复制文件/文件夹

从主机上拷贝文件到容器内

docker cp foo.txt mycontainer:/foo.txt

从容器里面拷贝文件/目录到本地一个路径

docker cp Name:/container_path to_path 例如: docker cp tomcat:usr/local/tomcat/README.md ./

查看容器日志

docker logs -f --tail=要查看末尾多少行 默认all 容器ID

容器自动重启

使用docker run命令时 添加参数--restart=always 便表示,该容器随docker服务启动而自动启动

docker run -d -p 8888:6379 --restart=always --name redis002 redis:5.0.5 /bin/bash

更换容器名

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

提交镜像后更新镜像

运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更新的镜像,这时候我们就需要使用 commit 命令来构建一个新的镜像

docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag

环境变量

docker run -d -e name1=张三 -e name2=lisi nginx

🍲数据挂载

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

命令:

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

如此操作,就将 容器内指定文件挂载到了宿主机对应位置,-v命令可以多次使用,即一个容器可以同时挂载多个文件

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

示例:

运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动

docker run -p 6380:6379 --name redis01 --restart=always -v /home/211/redis/redis.conf:/etc/redis/redis.conf -v /home/211/redis/data:/data -d redis redis-server /etc/redis/redis.conf