docker 安装
官方安装脚本
curl -fsSL get.docker.com | bash
# 国内安装
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
centos
BASH
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# 配置阿里加速
mkdir -p /etc/docker && sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://1m20yrx2.mirror.aliyuncs.com"]
}
EOF
# Step 4: 开启Docker服务
sudo systemctl start docker
sudo systemctl enable docker
#运行Demo
docker run hello-world
Ubuntu
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get -y update
sudo apt-get -y install docker-ce
docker version
#启动Docker
sudo systemctl start docker
#设置开机自启
sudo systemctl enable docker
#运行Demo
docker run hello-world
docker-compose 安装
BASH
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose && sudo chmod +x /usr/bin/docker-compose
免 root 执行 docker 命令
BASH
sudo usermod -aG docker $USER
顺便确定一下 sock 文件有没有权限(默认是有的), 退出账户重新登录一下即可生效
阿里云 Docker 加速
BASH
mkdir -p /etc/docker && tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://1m20yrx2.mirror.aliyuncs.com"]
}
EOF
或者
BASH
cat > /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://1m20yrx2.mirror.aliyuncs.com"]
}
EOF
常用操作
一次性删除所有的容器
BASH
docker rm -f `docker ps -aq`
一次性删除所有的镜像
BASH
docker rmi $(docker image ls | awk 'NR!=1 {print $1 ":" $2}')
一次性删除未打标签的镜像
BASH
docker image ls | grep none | awk '{print $3}' | xargs docker rmi
一次性删除所有 volume
BASH
docker volume rm `docker volume ls -q`
Docker 进入容器
BASH
docker run --name test_ubuntu -it ubuntu /bin/bash
启动一个容器并打开shell
查看容器详情
BASH
# 重看容器详情
docker inspect 容器id或名字
# 重看docker详情
docker info
启动容器
BASH
docker run -it 镜像名字 /bin/sh
进入一个运行中的容器
BASH
docker exec -it 容器id /bin/sh
打 tag
BASH
docker tag 镜像id mek/alpine:latest
容器备份还原
镜像的备份还原
-
commit 将容器保存成镜像
BASH docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
-
将镜像导出成 tar (镜像是分层的,可以回滚,)
BASH docker save -o ./backup.tar gitlab/gitlab-ce
-
从 tar 导入镜像(镜像备份下来的 tar)
BASH docker load -i ./backup.tar
注意:以上会备份镜像的多层。
容器的备份还原
-
备份容器
BASH docker export php > phprongqi.tar
-
还原成镜像
BASH docker import ./phprongqi.tar php
注意:备份的只是一层镜像
容器的日志
日志位置
docker 日志建议输出控制台,控制台日志存储在主机上
先查看 Logging Driver
类型,默认应该是 json
格式
BASH
docker info | grep "Logging Driver"
json 格式的日志在 /var/lib/docker/containers//-json.log
local 格式的日志在 /var/lib/docker/containers//local-logs/container.log
控制日志大小
vi /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m", "max-file": "3"
}
}