docker及docker-compose安装
一、联网安装
-
安装
# 安装GPG证书 curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # 写入软件源信息 sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # 更新仓库 sudo apt-get -y update # 安装最新版本 sudo apt-get -y install docker-ce # 查找Docker-CE的版本 apt-cache madison docker-ce # 安装指定版本 sudo apt-get -y install docker-ce=5:18.09.9~3-0~ubuntu-bionic # 查看所安装的docker版本 sudo docker version
-
配置镜像源
cat > /etc/docker/daemon.json << EOF { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn", "https://dockerhub.icu", "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi", "https://docker.jsdelivr.fyi", "https://dockertest.jsdelivr.fyi", "https://mirror.aliyuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://mirror.iscas.ac.cn", "https://docker.rainbond.cc" ] } EOF
-
验证docker安装是否成功
# 查看Docker版本 sudo docker -v # 查看Docker详细信息 sudo docker info
-
ubuntu 安装docker-compose
查看版本:git仓库# 下载docker-compose至/usr/local/bin/(v2.33.1为版本号) sudo curl -L https://github.com/docker/compose/releases/download/v2.33.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose # 或者直接下载文件后移动到/usr/local/bin/并重命名为docker-compose sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose # 授权 sudo chmod +x /usr/local/bin/docker-compose # 查看版本 docker-compose --version
-
Anolis OS 8 在线安装docker
-
安装
# 更新系统 sudo dnf update -y # 装依赖工具 sudo dnf install -y dnf-plugins-core # 添加 Docker 官方仓库 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 更换国内镜像源 sudo sed -i 's@https://download.docker.com@https://mirrors.aliyun.com/docker-ce@' /etc/yum.repos.d/docker-ce.repo # 安装 Docker 引擎:在安装命令中添加 --allowerasing 参数,允许卸载冲突的 podman 和旧版 runc sudo dnf install -y docker-ce docker-ce-cli containerd.io --allowerasing # 启动 Docker 并设置开机自启 sudo systemctl enable --now docker # 查看所安装的docker版本 sudo docker version
下面步骤一致…
二、离线安装
-
下载deb包
https://download.docker.com/linux/ubuntu/dists/
根据系统版本选择:例如ubuntu20.04,则逐级选择focal/pool/stable/amd64/
将下列文件全下载下来:
containerd.io_<version>_<arch>.deb docker-ce_<version>_<arch>.deb docker-ce-cli_<version>_<arch>.deb
-
安装deb包
sudo dpkg -i containerd.io_1.2.6-3_amd64.deb sudo dpkg -i docker-ce-cli_19.03.6_3-0_ubuntu-disco_amd64.deb sudo dpkg -i docker-ce_19.03.6_3-0_ubuntu-disco_amd64.deb
-
配置镜像源
cat > /etc/docker/daemon.json << EOF { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn", "https://dockerhub.icu", "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi", "https://docker.jsdelivr.fyi", "https://dockertest.jsdelivr.fyi", "https://mirror.aliyuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://mirror.iscas.ac.cn", "https://docker.rainbond.cc" ] } EOF
-
验证docker安装是否成功
# 查看Docker版本 sudo docker -v # 查看Docker详细信息 sudo docker info
-
启动并设置开机启动
# 启动Docker sudo systemctl start docker # 查看Docker状态 sudo systemctl status docker # 设置开机自启 sudo systemctl enable docker
-
下载docker的安装文件
https://download.docker.com/linux/static/stable/x86_64/
选择合适的版本,例如docker-19.03.6.tgz
wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.6.tgz
-
将解压出来的docker文件复制到 /usr/bin/ 目录下
tar -zxvf ./docker-20.10.9.tgz cp docker/* /usr/bin/
-
创建docker.service文件
cd /etc/systemd/system/ sudo touch docker.service
-
打开docker.service文件,复制以下内容
注意: --insecure-registry=192.168.79.142 此处改为自己服务器ip
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=192.168.79.142 ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process # restart the docker process if it exits prematurely Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target
-
给docker.service文件添加执行权限并加载
chmod 777 /etc/systemd/system/docker.service # 重新加载配置文件(每次有修改docker.service文件时都要重新加载下) sudo systemctl daemon-reload
-
配置阿里云镜像加速
mkdir /etc/docker cat > /etc/docker/daemon.json << EOF { "registry-mirrors": ["https://9ynf7m5d.mirror.aliyuncs.com"] } EOF
-
升级libseccomp(解决创建容器时报错)
下载libseccomp-2.3.1-4.el7.x86_64.rpm文件,然后运行
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libseccomp-2.3.1-4.el7.x86_64.rpm rpm -U libseccomp-2.3.1-4.el7.x86_64.rpm
-
验证docker安装是否成功
# 查看Docker版本 sudo docker -v # 查看Docker详细信息 sudo docker info
-
启动并设置开机启动
# 启动Docker sudo systemctl start docker # 查看Docker状态 sudo systemctl status docker # 设置开机自启 sudo systemctl enable docker
-
下载docker-compose安装包
https://github.com/docker/compose/releases/
选择合适的版本,例如docker-compose-linux-x86_64
-
将文件转移至/usr/local/bin/
sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
-
添加权限
sudo chmod +x /usr/local/bin/docker-compose
-
验证docker-compose安装是否成功
docker-compose -v
-
保存镜像到本地文件
sudo docker save -o mysql_image.docker mysql:5.7 sudo docker save -o php_image.docker php:5.6 sudo docker save -o nginx_image.docker nginx:1.14.0
-
把镜像拷贝到无网络的电脑,然后通过docker加载镜像即可
sudo docker load -i mysql_image.docker sudo docker load -i php_image.docker sudo docker load -i nginx_image.docker
三、docker 常用命令
docker-compose up -d #运行docker-compose.yml
sudo docker rmi -f $(docker images -qa) #删除所有镜像
sudo docker rm -f $(sudo docker ps -qa) #删除所有容器
sudo docker restart 22102d62c6c9 #重启容器
sudo docker exec -it 22102d62c6c9 /bin/sh #进入容器
sudo docker cp ~/test.sql 22102d62c6c9:/ #复制文件到容器
sudo docker image prune -a #移除所有没有容器使用的镜像
四、docker 更换存储目录
# 停止 Docker 服务
sudo systemctl stop docker docker.socket
# 复制现有镜像到新位置:使用 rsync 保留文件权限和属性
sudo rsync -avx /var/lib/docker/ /新存储路径/
# 修改 Docker 配置文件
sudo vim /etc/docker/daemon.json
{
"data-root": "/新存储路径"
}
# 重启 Docker 服务
sudo systemctl start docker docker.socket
# 检查 Docker 存储路径
sudo docker info | grep "Docker Root Dir"
sudo docker images
sudo docker ps -a
# 清理旧数据
sudo rm -rf /var/lib/docker