Docker 简介

Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中。容器是一种虚拟化技术,但与传统的虚拟机不同,容器共享宿主机的操作系统内核,因此更加轻量级和高效。

Docker 的主要优势包括:

  • 一致性:确保开发、测试和生产环境的一致性。
  • 隔离性:每个容器都是独立的,互不干扰。
  • 可移植性:容器可以在任何支持 Docker 的平台上运行。
  • 高效性:容器启动速度快,资源占用少。

Docker-Compose 是 Docker 的一个工具,用于定义和运行多容器 Docker 应用程序。通过一个 YAML 文件(通常命名为 docker-compose.yml),你可以配置应用程序的服务、网络和卷,然后使用一个命令启动所有服务。

初始操作

更新、安装必备软件

sudo apt update -y #更新软件源中的所有软件列表
sudo apt upgrade -y #更新软件
sudo apt install wget curl sudo vim git -y

docker安装配置

海外服务器

docker安装

wget -qO- get.docker.com | bash

docker卸载

sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

Docker-compose安装

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

国内服务器

docker安装

curl -sSL https://get.daocloud.io/docker | sh

docker卸载

sudo apt-get remove docker docker-engine
sudo rm -fr /var/lib/docker/

Docker-compose安装

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

docker配置

修改Docker配置(可选)(来自烧饼博客

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘(泪的教训):
cat > /etc/docker/daemon.json <<EOF
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    },
    "ipv6": true,
    "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
    "experimental":true,
    "ip6tables":true
}
EOF

然后重启 Docker 服务:

sudo systemctl restart docker

docker其他操作

docker查看当前运行的容器

sudo docker ps

docker停止容器

sudo docker stop 容器id/名称

docker移除容器

sudo docker rm 容器id/名称

docker查看当前所有镜像

sudo docker images

docker移除指定镜像

sudo docker rmi 镜像id/名称

docker-compose容器迁移

#(压缩文件)tar -czvf 压缩文件名.tar.gz 压缩文件
sudo tar -czvf data.tar.gz data 

#(传输文件)scp -P 端口 -r 压缩文件名.tar.gz 你的用户名@你的ip:/root
sudo scp -P 22 -r data.tar.gz [email protected]:/root  

#(解压文件)tar -zxvf 压缩文件名.tar.gz
sudo tar -zxvf data.tar.gz

#(删除文件)rm -r 压缩文件名.tar.gz
sudo rm -r data.tar.gz

docker进入容器

sudo docker exec -i 容器id/名称 bash

docker-compose指令

#docker-compose 启动
sudo docker-compose up -d

#docker-compose 重启
sudo docker-compose restart

#docker-compose 停止
sudo docker-compose down