Docker:
Docker是用Go语音开发,在软件系统上做到资源的隔离,不像虚拟机会将整套系统复制,其虚拟机本身的运行就占据了实体机的部分性能.而Docker的资源隔离则不会,在Docker中跑资源和在物理机上跑资源基本相似。
Docker环境依赖:
Docker 只能在基于linux系统运行的环境中,在windows中使用docker desktop。
Docker需要Centos7.* 且64位,3.1.0以上版本才可用。
uname -a
Docker安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
此处安装的是docker-engine。
Docker 镜像:
- 科大镜像:https://docker.mirrors.ustc.edu.cn/
- 网易:https://hub-mirror.c.163.com/
- 阿里云:https://<你的ID>.mirror.aliyuncs.com
- 七牛云加速器:https://reg-mirror.qiniu.com
打开 /etc/docker/daemon.json ,如果没有则新建
{"registry-mirrors":["https://hub-mirror.c.163.com/"]}
- 镜像生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
异常:```
Ubuntu执行错误:
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
sudo dockerd
failed to start daemon: Error initializing network controller: error obtaining controller instance
>docker info //查看
* docker启动,停止,和重启:
>sudo systemctl start docker
>sudo docker run hello-world
>sudo systemctl restart docker
>sudo systemctl stop docker
>yum remove docker-ce //卸载
docker的镜像文件存在 /var/lib/docker/image下。
## Docker组成:
+ 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
+ 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
+ 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
## Docker容器创建:
一般我们是通过在linux的物理机上安装docker-engine,转化镜像地址。然后通过命令下载容器。
此处以下载cento为例:
https://registry.hub.docker.com/_/centos/
> docker pull centos:centos7
> docker images //查看下载的镜像文件
安装容器:
> docker run -itd --name centos-test centos:centos7
> docker ps //查看启动的容器
容器操作:
> \>docker run centos:centos7 /bin/echo "hello Docker"
启动并进入伪终端中
> \>docker run -it centos:centos7 /bin/bash
-t 表示开启伪终端
-i 表示对输入可以交互
这样就和我们在linux下操作一样了。
> \>cat proc/version //查看版本
> \>exit //或者Ctrl + D 退出当前伪终端,不过容器还在
容器ID:
> \>docker run centos:centos7 /bin/sh -c "while true; do echo hello world; sleep 1; done" //使用这种启动容器,开启了循环,但是循环导致我们退不出来
> \>docker ps //可以看到容器container_ID
![image](/i/l/?n=20&i=blog/1154541/202104/1154541-20210427203506266-1844380170.png)
</br>docker容器中的状态STATUS:
* created(已创建)
* restarting(重启中)
* running 或 Up(运行中)
* removing(迁移中)
* paused(暂停)
* exited(停止)
* dead(死亡)
> \>docker stop [container_id] //停止刚才写的 循环helloworld!
> \>docker start [container_id] // 启动停止的容器,注意停止后会在docker ps中消失
> \>docker restart [container_id] //重启
> \>docker ps -a //可查看所有的死掉的和在运行的
> \>docker run -d centos:centos7 /bin/sh -c "while true; do echo hello world; sleep 1; done" // -d 表示后台执行,会返回container_id
> \>docker logs [container_id] //可看到执行的内容 helloworld!
docker我们启动一些容器,要让容器在后台运行,需要加 -d
> \>docker run -itd centos:centos7 /bin/bash
这样容器就不会直接进入伪终端中。
如果我们需要进入终端
> \>docker attach [container_id] /bin/bash //慎用,退出后,容器会死亡
> \>docker exec -it [container_id] /bin/bash //退出,不会死亡
> \>docker exec --help //查看内容
标签:容器,入门,centos,https,镜像,docker,Docker
From: https://www.cnblogs.com/DennyZhao/p/14705892.html