Install Docker CE
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
# Uninstall old versions
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine
# 安装使用的依赖
sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2
# 安装使用的源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果速度想快点,就使用阿里的镜像源(推荐)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum缓存
sudo yum makecache fast
# 开始安装docker ce
yum install docker-ce # 默认会下载官方最新的稳定版本
# 开启Docker服务
sudo service docker start
#查看版本
sudo docker version
配置docker加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://1vs5nfat.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 安装docker 命令补全工具
yum install -y bash-completion
# 实时查看docker日志
sudo sh -c "tail -F /var/log/messages |grep docker"
# 查看所有仓库中的docker版本
yum list docker-ce --showduplicates | sort -r
# 如果要安装指定版本
yum list docker-ce --showduplicates |sort -r
# docker 寻找相应版本网站上
https://hub.docker.com/r/centos/
# Install Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# test
docker-compose --version
安装 docker-compose
因为 Seafile v7.x.x 容器是通过 docker-compose 命令运行的,所以您应该先在服务器上安装该命令。
# for CentOS
yum install docker-compose -y
下载并修改 docker-compose.yml
下载 docker-compose.yml 示例文件到您的服务器上,然后根据您的实际环境修改该文件。尤其是以下几项配置:
MySQL root 用户的密码 (MYSQL_ROOT_PASSWORD and DB_ROOT_PASSWD)
持久化存储 MySQL 数据的 volumes 目录 (volumes)
持久化存储 Seafile 数据的 volumes 目录 (volumes)
docker开机启动相关
# docker 启动
systemctl enable docker.service
# docker-compose启动
方法一:
vim /etc/rc.d/rc.local
/usr/local/bin/docker-compose -f /www/docker/trace_fecshop/docker-compose.yml up -d
方法二:
vim /etc/rc.d/init.d/start-docker-compose.sh
start-docker-compose.sh
#!/bin/bash
# chkconfig: 2345 85 15
# description: docker-compose
/usr/local/bin/docker-compose -f /www/docker/trace_fecshop/docker-compose.yml up -d
# docker 复制镜像和复制容器
复制镜像和复制容器都是通过保存为新镜像而进行的。
具体为:
保存镜像
docker save ID > xxx.tar
docker load < xxx.tar
保存容器
docker export ID >xxx.tar
docker import xxx.tar containr:v1
然后再docker run -it containr:v1 bash
# 清理相关
#列出未使用的volume
$ docker volume ls -qf dangling=true
#删除未使用的volume
$ docker volume rm $(docker volume ls -qf dangling=true)
删除所有未使用数据
$ docker system prune
比如想删除未使用的image,container,volume,network
查看官方文档https://docs.docker.com/config/pruning/#prune-networks
# 常用操作篇章
进入数据库
sudo docker exec -it mariadb1 mysql -u<用户名> -p<密码>
# 保存对容器的修改,产生一个新的image
docker commit <container_id> <image_name>
jq工具
一个操作json的工具,这个是在查看容器配置的时候用的,我们使用docker inspect ID查看容器配置,往往会过滤出来一些我们关注的信息,一般情况下我们会选择docker inspect --format= 或者使用grep
但是无论使用哪一种都没有我们最熟悉的操作json的方式来过滤用着爽
jq工具需要单独安装yum install jq
使用jq过滤docker inspect 容器名 |jq -r # 高亮格式化json信息
# 仅查看“NetworkSettings” 下面的信息
[loki@???]$ sudo docker inspect <容器名> | jq -r .[0].NetworkSettings
# 查看docker 存放位置
sudo docker info |grep Docker
# 修改默认存储位置----通过建立软连接
# 停止docker service docker stop # 移动/var/lib/docker 到/usr/local/ mv /var/lib/docker /usr/local/ # 建立软连接 ln -s /usr/local/docker /var/lib/docker # 启动Docker service docker start
# 修改默认存储位置---修改配置文件
默认配置文件/etc/docker/daemon.json,如没有就自行创建
{
"registry-mirrors": ["https://1vs5nfat.mirror.aliyuncs.com"],
"graph":"/docker_data"
}
Docker 鬼蓄操作—— 后悔药系列
PS:如果你Docker创建完毕后,你发现你CPU,内存大小设置有问题,又或者是你端口映射错误,怎么办?
# CPU,内存大小动态调整
docker update
docker update --help Usage: docker update [OPTIONS] CONTAINER [CONTAINER...] Update configuration of one or more containers Options: --blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0) --cpu-period int Limit CPU CFS (Completely Fair Scheduler) period --cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota --cpu-rt-period int Limit the CPU real-time period in microseconds --cpu-rt-runtime int Limit the CPU real-time runtime in microseconds -c, --cpu-shares int CPU shares (relative weight) --cpus decimal Number of CPUs --cpuset-cpus string CPUs in which to allow execution (0-3, 0,1) --cpuset-mems string MEMs in which to allow execution (0-3, 0,1) --kernel-memory bytes Kernel memory limit -m, --memory bytes Memory limit --memory-reservation bytes Memory soft limit --memory-swap bytes Swap limit equal to memory plus swap: '-1' to enable unlimited swap --pids-limit int Tune container pids limit (set -1 for unlimited) --restart string Restart policy to apply when a container exits
# 想调整docker 端口修改配置文件
方法一:修改配置文件(尝试没成功)
sudo vim /var/lib/docker/containers/<容器名>/hostconfig.json
重启服务 systemctl restart docker # 注:这里容器下面的所有容器都会被重启!!!
方法二:把当前容器状态保存,重新生成(尝试成功的方法)
1、停止docker容器
docker stop kali2020
2、commit该docker容器
docker commit kali2020 kali2020:loki_t1
3、用前一步新生成的镜像重新起一个容器
docker run -id -v /data_backup/kali_linux/_data:/root --restart=always --name=kali2020 -p 2222:22 -p 4444:4444 -p 8834:8834 kali2020:loki_t1
# 升级更新Docker版本 2020.4.27
和重新安装一次无异,先卸载,安装依赖,进行安装
# 相关参考
https://www.cnblogs.com/shijf/p/10386193.html