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 备份的镜像文件名