标签 docker 下的文章

环境要求:

  • CentOS 7 的 64 位版本
  • 高于 3.10 的内核版本

安装 docker

官方 CentOS 7 存储库中可用的Docker 安装软件包可能不是最新版本。要获得最新和最好的版本,请从官方Docker存储库安装Docker。本节向您展示如何做到这一点。

更新软件包数据库:

yum check-update

现在运行此命令。它将添加官方Docker存储库,下载最新版本的Docker并进行安装:

curl -fsSL https://get.docker.com/ | sh

安装完成后,启动Docker守护程序:

systemctl start docker

查看 docker 运行状态:

systemctl status docker

docker 开机自启动:

sudo systemctl enable docker

docker 常用命令

查看当前运行的容器

docker ps

查看全部容器

docker ps -a

查看全部容器的id和信息

docker ps -a -q

查看全部容器占用的空间

docker ps -as

查看一个正在运行容器进程,支持 ps 命令参数

docker top

查看容器的示例id

docker inspect -f  '{{.Id}}' [id]

检查镜像或者容器的参数,默认返回 JSON 格式

docker inspect

启动停止容器等操作

docker start|stop|restart [id]
# 暂停|恢复 某一容器的所有进程
docker pause|unpause [id]
# 杀死一个或多个指定容器进程
docker kill -s KILL [id]
# 停止全部运行的容器
docker stop `docker ps -q`
# 杀掉全部运行的容器
docker kill -s KILL `docker ps -q`

交互式进入容器

docker exec -it {{containerName or containerID}} bash
docker exec -i {{containerName or containerID}} bash
docker exec -t {{containerName or containerID}} bash
docker exec -d {{containerName or containerID}} bash

Debian 10 安装 docker

通过 HTTPS 添加新存储库所需的软件包

# 更新软件包
apt update -y
# 通过 HTTPS 添加新存储库所需的软件包
apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

使用以下 curl 命令导入存储库的 GPG 密钥

curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -

将稳定的 Docker APT 存储库添加到系统的软件存储库列表中

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
# 再次更新软件包
apt update -y

# 安装 docker
apt install docker-ce

安装完成后, Docker 服务会自动启动,并默认开机自启。

# 查看docker服务的状态
systemctl status docker

# 查看docker开机自启状态
systemctl is-enabled docker

解决 docker 与 ufw 的冲突

  • ufw 防火墙默认本地路由转发默认为关,需要修改为开;

    vi /etc/default/ufw
    
    # 将DEFAULT_FORWARD_POLICY修改为
    DEFAULT_FORWARD_POLICY="ACCEPT"
    
    # ufw 防火墙规则重载
    ufw reload
  • docker默认直接修改iptables规则,需要关闭,从而使 UFW 防火墙规则生效;

    vi /etc/default/docker
    
    # 修改文件配置项DOCKER_OPTS,该项默认为注释状态
    DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 -iptables=false"
    
    # 重启 docker
    systemctl restart docker

    部署一个容器后,它将不再改变iptables并且严格遵守UFW防火墙的设置规则。