Docker作用
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低
一、安装Docker
1.环境准备:需要Linux基础
centos7版本
使用xshell远程控制连接
2.系统查看:
[root@localhost /] uname -r
3.10.0-862.el7.x86_64
3.系统版本
[root@localhost /] cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
4.安装
https://www.docker.com/
https://docs.docker.com/ 文档地址
帮助文档:
1.卸载旧的版本:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.需要的安装包
sudo yum install -y yum-utils
3.设置镜像仓库
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软件包索引
yum makecache fast
4.安装docker相关的 docker-ce 社区 ee企业版
sudo yum install docker-ce docker-ce-cli containerd.io
如果出现错误后面添加 --skip--broken
5.启动docker: systemctl start docker
6.使用docker:
关闭防火墙: systemctl stop firewall.service
查看防火墙状态: firewall-cmd --state
7.docker version
Client: Docker Engine - Community
Version: 20.10.7
API version: 1.41
Go version: go1.13.15
Git commit: f0df350
Built: Wed Jun 2 11:58:10 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
8.测试:下载一个镜像docker run hello-world
9.查看下载的hello-world 镜像
docker images
10.卸载docker依赖
sudo yum remove docker-ce docker-ce-cli containerd.io
删除资源:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
安装出现的问题:
1.Centos7安装docker(报错:container-selinux >= 2:2.74)
解决:安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.container-selinux版本低或者没有安装
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release
yum makecache fast
yum install container-selinux
二、配置阿里云镜像加速使用
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":["https://xxx.ailiyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三、docker工作原理
Docker如何工作的?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问
DockerServer接收到Docker-Client的指令,就会执行命令
四、Docker的基本命令
1.帮助命令 docker version # 看版本
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help # 帮助命令
2.帮助文档地址:
https://docs.docker.com/reference/
3.镜像命令:
1.docker images 查看所有本地的主机上镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 months ago 13.3kB
说明:
REPOSITORY:镜像的仓库源
TAG: 镜像的标签
IMAGE ID: 镜像的ID
CREATED: 镜像的创建时间
SIZE: 镜像的大小
#可选项
Options:
-a, --all Show all images (default hides) 列出所有的镜像
-q, --quiet Only show image IDs 只显示镜像的ID
2.docker search 搜索docker镜像
[root@localhost ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11050 [OK]
mariadb MariaDB Server is a high performing open sou… 4192 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 821 [OK]
#可选项:
--filter=STARS=3000 搜索xxx STARS大于 3000的镜像
3. docker pull 镜像名称 下载镜像
docker pull mysql:5.7
4. docker rmi 镜像名称 删除镜像
[root@localhost ~] docker rmi -f 容器id 删除指定的容器
[root@localhost ~] docker rmi -f 容器id 容器ID 容器ID 删除多个容器
[root@localhost ~] docker rmi -f $(docker images -aq) 删除所有的容器
4.容器命令:
说明:我们有了镜像才可以创建容器,Linux,下载一个centos镜像来学习
docker pull centos
新建容器并启动
docker run image
#参数说明
--name ="name" 容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-P 小P 指定容器的端口 -p 8080:8080
-p ip:主机端口 :容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
-p 大P 随机指定端口