Docker
Docker 是一个开源的应用容器引擎,让开发添加链接描述者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。(轻量级的虚拟机)
一个完整的Docker有以下几个部分组成:
- DockerClient客户端
- Docker Daemon守护进程
- Docker Image镜像
- DockerContainer容器
镜像
镜像通俗的来讲就是虚拟机的静态文件
官方jinix
容器
容器就是从镜像运行启动的虚拟机
yum在线安装docker
https://docs.docker.com/install/linux/docker-ce/centos/
安装一组工具
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置yum仓库地址
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
sudo yum install -y docker-ce docker-ce-cli containerd.io
启动docker系统服务并设置开机启动
sudo systemctl start docker
sudo systemctl enable docker
关于镜像加速的问题
由于国内的网络的原因,需要配置加速器来加速
生成文件daemon.json
cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com"
]
}
EOF
重新启动服务,查看镜像配置
# 重新加载docker配置
sudo systemctl daemon-reload
#重启docker服务
sudo systemctl restart docker
docker info
下载hello-world镜像
docker pull hello-world
运行hello-world镜像,验证docker运行正常
sudo docker run hello-world
docker镜像操作
下载CentOS镜像
docker pull centos:7
查看镜像
docker image ls
运行centos7
docker run -it xxxx bash
删除镜像
501 镜像 id 前几位,一般三位以上,足够区分即可
docker image rm 501
删除指定的仓库镜像
docker image rm centos
镜像导出
docker save mysql:5.7 node:8 | gzip > app.tar.gz
镜像导入
docker load < apps.tar.gz
容器
从镜像运行启动的虚拟机
从 tomcat 运行启动容器 # -it: i交互 t终端 # 启动后 ctrl+c 结束tomcat,容器也会自动退出
docker run \
-it \
tomcat
查看容器列表
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器,包括已退出的容器
再启动一个 tomcat 容器 # -d: 后台运行,不会开启终端,不占用命令行
–name: 容器命名
docker run \
-d \
--name tomcat01 \
tomcat
容器停止、重启
docker stop tomcat01
docker ps -a
docker restart tomcat01
docker ps -a
在容器内部运行命令
docker exec -it tomcat01 ls
docker exec -it tomcat01 pwd
docker exec -it tomcat01 touch f1.txt
docker exec -it tomcat01 ls
docker exec -it tomcat01 top
docker exec -it tomcat01 bash
新启动一个容器时,指定容器运行的命令
容器启动后有默认的运行命令,是在镜像中设置的
docker history tomcat
–rm 当容器关闭退出时,自动删除
docker run \
-it \
--name tomcat02 \
--rm \
tomcat \
bash # 用自己自定的命令,覆盖了tomcat镜像的默认命令(catalina.sh run)
#> top
删除容器
docker rm xxx # 删除停止的容器
docker rm -f xxx # -f强制删除可以删除运行的容器
清理所有停止的容器
docker container prune