docker 相关基本命令(updating...)

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

原文地址:https://www.cnblogs.com/Cong0ks/p/11157829.html