docker基础学习一

一 docker是什么?

  docker是目前比较火的容器引擎,开发者可以打包应用以及依赖到可移植的容器中,然后发布到任何流行的Linux容器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口。

二 安装docker

yum包更新到最新
sudo yum update

安装需要的软件包  yum-util提供yum-config-manager功能 ,另外两个是devicemappe驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data 1vm2

设置为yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

centos8默认使用podman代替docker,所以需要containerd.io
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm

安装docker   ce是社区版
sudo yum install docker-ce

安装后查看docker版本
docker -v 

在这里插入图片描述

三 设置docker为国内镜像

设置docker国内镜像,不然拉取一些镜像的速度会非常慢,使用的是国外站点,我刚开始使用的阿里镜像,但是启动docker一直无法启动,后面更换了镜像就可以了。

vi /etc/docker/daemon.json

将下面镜像之间复制进去,当然也可以选择其他国内镜像

{
"registry-mirrors":["https://registry.docker-cn.com"]
}

我在设置镜像的时候没有找到cocker文件夹,我是自己通过命令创建出来的

mkdir /etc/docker 

四 docker的一些常用命令

启动docker
systemctl start docker 

查看docker启动状态
systemctl status docker

停止docker
systemctl stop docker

重启docker
systemctl restart docker

设置开机自启
systemctl enable docker

在这里插入图片描述
在这里插入图片描述

五 docker镜像的一些常用命令

查看镜像
docker images

搜索镜像,搜索的是互联网里面的
docker search 镜像名称包含的字

拉取镜像
docker pull 镜像名称

删除镜像
docker rmi  镜像ID|镜像名称

删除全部镜像
docker rmi `docker images -q`

在这里插入图片描述
在这里插入图片描述

六 docker容器的一些命令

  • 创建查看容器
查看容器
docker ps

查看所有容器
docker ps -a

查看最后一次运行的容器
docker ps -l

查看停止的容器
docker ps -f status=exited
查看容器日志
docker logs -f -t --since="2018-03-31" --tail=100 elastic_raman
–since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。 
-f : 表示查看实时日志 
-t : 查看日志产生的日期 
-tail=200 : 查看最后的200条日志。 
sleepy_snyder 容器的名称,并不是镜像的名字

在这里插入图片描述

创建容器
docker run
-i:表示运行容器
-t:表示容器启动后会进入其命令行,加入这两个参数后,容器创建完成就会登陆进去,相当于一个伪终端
--name:为容器命名
-v:表示目录映射关系(前者是宿主机,后者是映射到宿主机的目录),可以使用多个-v做多个目录或者文件的映射。最好是最目录映射 ,在宿主机上做修改然后共享到容器上面
-d:在run后面加上-d参数。则会创建一个守护式容器在后台运行(这样不会自动登陆容器。如果过只加-i,-t两个参数会直接进入到容器里面)
-p:表示端口映射,前者是宿主机,后者是容器内的映射端口,也是可以多个-p做多个端口映射
  • 交互式方式创建容器
docker run -it --name=MyTest   镜像名称:镜像标签    /bin/MyTest
/bin/MyTest==就是交互式方式运行之后,运行的命令(相当于加载镜像容器的命令行)

在这里插入图片描述
在这里插入图片描述

当前已经进入到容器里了。从新开一个窗口,就可以看到当前运行的容器了
在这里插入图片描述

退出容器,容器也会关机
exit

  • 守护式方式创建容器
name名字是唯一的,即使之前的容器关机了,也不能出现重复名称
docker run -di --name=Mycentos1 centos:latest

在这里插入图片描述

进入容器
docker exec -it Mycentos1 /bin/bash

在这里插入图片描述

此时通过命令exit退出,但是容器并不会关机

  • 停止启动容器
停止容器
docker stop 容器名称|容器ID

启动容器
docker start 容器名称|容器ID

  • 文件拷贝,目录挂载
docker cp 需要拷贝的文件或者目录  容器名称:容器目录

docker cp 容器名称:容器目录    需要拷贝的文件或者目录  

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

目录挂载 宿主机的/docker/MyTest与容器的/usr/local共享
docker run -di --name=MyCentos2 -v /docker/MyTest:/usr/local centos:latest

在这里插入图片描述
在这里插入图片描述

这里是中文,查看的时候出现乱码了

这个命令可以查看容器的很多东西,包括IP地址
docker inspect MyCentos2

直接查询所需要的信息,如IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' MyCentos2

在这里插入图片描述
在这里插入图片描述

删除容器
docker rm 容器名称|容器ID

七 docker备份与迁移

容器保存为镜像
docker commit 容器名称 镜像名称

在这里插入图片描述
在这里插入图片描述

容器备份 将
docker save -o 导出文件名  镜像名称

导入镜像
docker load -i 备份的镜像文件名 

在这里插入图片描述

原文地址:https://www.cnblogs.com/yangk1996/p/12657703.html