Docker 之入门安装

Docker 之入门安装 文章目录CentOS7 安装 DockerCEUbuntu16 安装 DockerCEUbuntu20 安装 DockerDocker Compose 安装与卸载Docker常用命令Ubuntu24 安装 DockerDocker 常用命令Centos安装Docker指定Docker版本配置镜像加速器数据卷创建nginx容器创建mysql容器Docker 容器网络Docker 镜像使用和安装Docker安装官方文档Dokce镜像官网CentOS7 安装 DockerCE在 CentOS 下安装 Docker Engine一起执行下面的命令# 1、移除以前docker相关包 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 2、配置yum源 sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 3、安装docker sudo yum install -y docker-ce docker-ce-cli containerd.io # 启动 docker、设置 docker 开机自启 systemctl enable docker --nowUbuntu16 安装 DockerCE# 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd # 安装 https 相关的软件包 sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common # 添加 阿里云 的apt仓库 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ deb [archamd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable # 安装 Docker sudo apt-get update sudo apt-get install docker-ce设置开机自启动sudo systemctl enable dockerUbuntu20 安装 Docker卸载旧版本sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get update安装 https 相关的软件包sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release添加 Docker 的 GPG 密钥sudo mkdir -p /etc/apt/keyrings curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg向 sources.list 中添加 Docker 软件源echo \ deb [archamd64 signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null再次更新 apt 包索引sudo apt-get update安装最新版本的 Docker Engine、containerd 和 Docker Composesudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin设置开机自启动sudo systemctl enable dockerDocker Compose 安装与卸载Docker Compose下载地址https://github.com/docker/compose/releases/download/v2.29.6/docker-compose-linux-x86_64将下载的文件复制到/usr/local/bin目录重命名为docker-compose添加可执行权限sudo chmod x /usr/local/bin/docker-compose# docker-compose -v Docker Compose version v2.27.3卸载删除文件即可sudo rm /usr/local/bin/docker-composeDocker常用命令查看正在运行的容器# 查看正在运行的容器 docker ps # 查看所有的容器包括已经停止的。 docker ps -a查看所有镜像docker images拉取镜像docker pull 镜像名:tag # 例如以下代码 docker pull mysql停止、启动、杀死指定容器docker start 容器名 or ID docker stop 容器名 or ID docker kill 容器名 or ID删除容器docker rm -f 容器名 or ID # 删除所有容器 docker rm -f $(docker ps -a -q)查看容器日志docker logs -f 容器名 or ID进入容器docker exec -it 容器名 or ID bashUbuntu24 安装 Docker1. 卸载旧版本可选但建议执行为避免冲突先移除系统中可能存在的旧版 Docker 相关包forpkgindocker.io docker-docdocker-composedocker-compose-v2 podman-docker containerd runc;dosudoapt-getremove$pkg;done2. 安装依赖包更新软件源并安装所需的工具sudoaptupdatesudoaptinstall-yca-certificatescurlgnupg lsb-release3. 添加 Docker 的 GPG 密钥和软件源使用阿里云镜像# 创建密钥存储目录sudomkdir-p/etc/apt/keyrings# 下载阿里云镜像上的 Docker GPG 密钥curl-fsSLhttps://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpgsudochmodar /etc/apt/keyrings/docker.gpg# 添加 Docker 阿里云软件源Ubuntu 24.04 适用echo\deb [arch$(dpkg --print-architecture)signed-by/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(lsb_release-cs)stable|sudotee/etc/apt/sources.list.d/docker.list/dev/null4. 安装 Docker Engine更新软件包索引然后安装 Docker 及所有核心组件sudoaptupdatesudoaptinstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin5. 启动 Docker 并设置开机自启sudosystemctlenabledockersudosystemctl startdocker6. 配置国内镜像加速可选但强烈建议编辑 Docker 配置文件添加国内镜像源如中科大、网易、阿里云可以大幅提升拉取镜像的速度sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json-EOF { registry-mirrors: [ https://docker.mirrors.ustc.edu.cn, https://hub-mirror.c.163.com, https://mirror.aliyuncs.com ] } EOFsudosystemctl daemon-reloadsudosystemctl restartdockerDocker 常用命令# 查看正在运行的容器 docker ps # 查看所有的容器包括已经停止的。 docker ps -a 查看所有镜像 docker images # 拉取镜像 docker pull 镜像名:tag # 如果不写tag默认就是latest最新的版本 docker pull mysql docker pull mysql:5.7.42 # 停止、启动、杀死指定容器 docker start/stop/kill/restart 容器名 or ID # 删除容器 docker rm -f 容器名 or ID进入容器docker exec -it 容器名 or ID /bin/bashCentos安装Docker指定Docker版本# 列出当前所有docker的包 yum list installed | grep docker # 卸载docker包 yum -y remove [docker的包名称] # 删除docker的所有镜像和容器 rm -rf /var/lib/docker # 如果系统没有docker可以直接从这一步开始 # 安装必要的软件包 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 # 列出需要安装的版本列表 yum list docker-ce --showduplicates | sort -r # 安装指定版本这里使用18.0.1版本 sudo yum install docker-ce-18.06.1.ce # 查看版本 docker -v # 启动Docker sudo systemctl start docker # 设置开机启动 sudo systemctl enable docker # 重启Docker sudo systemctl restart docker配置镜像加速器sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [https://docker.1panel.live,https://hub.rat.dev] } EOF sudo systemctl daemon-reload sudo systemctl restart docker数据卷数据卷volume是一个虚拟目录是容器内目录与宿主机目录之间映射的桥梁。数据卷目录/var/lib/docker/volumes如何挂载数据卷在创建容器时利用 -v 数据卷名容器内目录完成挂载。容器创建时如果发现挂载的数据卷不存在时会自动创建。数据卷的常见命令查看数据卷docker volume ls删除数据卷docker volume rm [数据卷目录名称]查看数据卷详情docker volume inspect [数据卷目录名称]删除未使用的数据卷docker volume prune查看容器详情docker inspect [容器名]挂载的数据卷目录详情创建nginx容器挂载html目录docker run -d --namenginx -p 80:80 -v html:/usr/share/nginx/html nginx docker run -d \ --namenginx \ -p 80:80 \ -p 18080:18080 \ -v /home/nginx/html:/usr/share/nginx/html \ -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \ --network hm\ nginx创建mysql容器并挂载数据和配置文件目录# 保存数据 mkdir /root/mysql/data # 初始化数据 mkdir /root/mysql/init # 配置文件 mkdir /root/mysql/conf将初始化脚本复制到 /root/mysql/init将配置文件复制到 /root/mysql/confmysql.cnf[client] default_character_setutf8mb4 [mysql] default_character_setutf8mb4 [mysqld] character_set_serverutf8mb4 collation_serverutf8mb4_unicode_ci init_connectSET NAMES utf8mb4docker run -d \ --name mysql \ -p 3306:3306 \ -e TZAsia/Shanghai \ -e MYSQL_ROOT_PASSWORD123 \ -v /root/mysql/data:/var/lib/mysql \ -v /root/mysql/init:/docker-entrypoint-initdb.d \ -v /root/mysql/conf:/etc/mysql/conf.d \ mysqlmysql与navicat建立连接出现1251错误原因mysql8之前的版本中加密规则是mysql_native_password在mysql8之后加密规则是caching_sha2_password。解决方案把mysql用户登录密码加密规则还原成mysql_native_password。docker exec -it mysql /bin/bash mysql -uroot -p # 修改加密规则 ALTER USER root% IDENTIFIED WITH mysql_native_password BY 你的密码; # 更新用户密码可以不执行 ALTER USER root% IDENTIFIED BY 新密码 PASSWORD EXPIRE NEVER; FLUSH PRIVILEGES; show variables like %char%;Docker 容器网络# 创建一个网络 docker network create # 查看所有网络 docker network ls # 删除指定网络 docker network rm # 清除未使用的网络 docker network prune # 使指定容器连接加入某网络 docker network connect # 使指定容器连接离开某网络 docker network disconnect # 查看网络详细信息 docker network inspect docker network create net1 docker network inspect net1 docker network connect net1 mysql