Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
基本概念:
镜像(Image):相当于是一个系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统。
容器(Container):镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个控制中心,用来保存镜像。
命令:
离线安装docker
卸载旧版本
yum remove docker docker-common docker-selinux docker-engine
wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz
将解压出来的docker文件内容移动到 /usr/bin/ 目录下
将docker注册为service
vi /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
启动
chmod +x /etc/systemd/system/docker.service #添加文件权限并启动docker
systemctl daemon-reload #重载unit配置文件
systemctl start docker #启动Docker
systemctl enable docker.service #设置开机自启
Docker 镜像加速
请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}
查看Docker状态
systemctl status docker
查看Docker版本
docker info
查看docker 镜像
docker image ls
查看docker 容器
docker ps -a
停止容器
docker stop id
删除容器
docker rm id
使用镜像启动一个容器,参数为以命令行模式进入该容器:
$ docker run -it ubuntu /bin/bash
-itd d表示后台运行
-p 5000:5000 容器内部的 5000 端口映射到我们本地主机的 5000 端口上
启动一个已停止的容器
docker start
进入容器
docker exec -it id /bin/bash
查看容器内部的标准输出
docker logs -f id
查看容器内部运行的进程
docker top id
返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
docker inspect wizardly_chandrasekhar
拉取镜像
默认从Docker Hub 获取
docker image pull rancher/rke-tools:v0.1.52
保存镜像
docker save 镜像id > /home/mysql.tar
载入镜像
docker load -i mysql.tar