docker常用配置
目录
docker 安装
官方安装脚本
curl -fsSL get.docker.com | bash
阿里云安装(centos)
# 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://go38p9zi.mirror.aliyuncs.com"]
}
EOF
# Step 4: 开启Docker服务
sudo systemctl start docker.service
docker-compose 安装
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命令
sudo usermod -aG docker $USER
顺便确定一下sock文件有没有权限(默认是有的), 退出账户重新登录一下即可生效
阿里云Docker加速
mkdir -p /etc/docker && tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://go38p9zi.mirror.aliyuncs.com"]
}
EOF
或者
cat > /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://go38p9zi.mirror.aliyuncs.com"]
}
EOF
常用操作
一次性删除所有的容器
docker rm -f `docker ps -aq`
一次性删除所有的镜像
docker rmi `docker image ls | awk '{print $1 ":" $2}'`
一次性删除未打标签的镜像
docker image ls | grep none | awk '{print $3}' | xargs docker rmi
一次性删除所有volume
docker volume rm `docker volume ls -q`
Docker进入容器
docker run --name test_ubuntu -it ubuntu /bin/bash
启动一个容器并打开shell
查看容器详情
# 重看容器详情
docker inspect 容器id或名字
# 重看docker详情
docker info
启动容器
docker run -it 镜像名字 /bin/sh
进入一个运行中的容器
docker exec -it 容器id /bin/sh
打tag
docker tag 镜像id oldboy1103/alpine:latest
容器备份还原
镜像的备份还原
-
commit将容器保存成镜像
docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
-
将镜像导出成tar (镜像是分层的,可以回滚,)
docker save -o ./backup.tar gitlab/gitlab-ce
-
从tar导入镜像(镜像备份下来的tar)
docker load -i ./backup.tar
注意:以上会备份镜像的多层。
容器的备份还原
-
备份容器
docker export php > phprongqi.tar
-
还原成镜像
docker import ./phprongqi.tar php
注意:备份的只是一层镜像
容器的日志
日志位置
docker日志建议输出控制台,控制台日志存储在主机上
先查看Logging Driver
类型,默认应该是json
格式
docker info | grep "Logging Driver"
json格式的日志在/var/lib/docker/containers/<containerID>/<containerID>-json.log
local格式的日志在/var/lib/docker/containers/<containerID>/local-logs/container.log
控制日志大小
vi /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m", "max-file": "3"
}
}