1.简单认识
软件的打包技术,就是将打乱的多个文件打包为一个整体,比如想使用nginx,需要先有一台linux的虚拟机,然后在虚拟机上安装nginx.比如虚拟机大小1G,nginx100M。当有了docker后我们可以下载nginx 的镜像文件,直接运行即可。
镜像:images,是个压缩包文件,里面存放着安装好的程序。
容器:Container,Docker利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
2.docker安装
https://docs.docker.com/engine/install/debian/#installation-methods
bash
// linux 安装
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
//启动
systemctl start docker
//自启
systemctl enable docker
3.镜像常用指令
bash
docker search xxx #在docker仓库中寻找 镜像
bash
docker images #查看本地镜像列表
bash
docker pull 下载镜像,拉取镜像
bash
docker push # 上传镜像,推送镜像,推到官方仓库
docker rmi xxx
#删除镜像,rm 删除image的意思,直接rm不加i表示要删除容器,可以通过名称加版本来删除,或者直接通过镜像id值来删除
#docker rmi tomcat:latest 或者 docker rmi imageid值
4.容器常用命令
bash
docker ps =docker container ls #参数: 默认之显示up状态的容器,-a查看所有容器,或者--
bash
docker stop 停止容器 #例子 docker stop 容器id或者容器名字
docker kill 杀掉容器 #强制关闭容器,尽量不要用,很容易就启动不了了
docker start 启动容器 #例子 docker start 容器id或者容器名字
docker restart 重启重启 #例子 docker restart 容器id或者容器名字
docker rm 删除容器 #例子 docker rm 容器id或者容器名字,同时删除多个,就空格隔
删除容器前要停止容器。
bash
docker rm -f `docker ps -a -q` #删除所有容器,-q是只显示容器id,反引号中的指令优先执行
bash
docker top 查看容器内的进程 #例子docker top 容器id或者容器名字
docker stats 查看容器的资源占用情况
bash
docker exec -it 进入容器 #例子: docker exec -it 容器id或者容器名字
# 直接交互指令:docker exec -it 76738703b7b2 ls # 执行ls指令
# 进入终端:docker exec -it 76738703b7b2 /bin/bash或者/bin/sh #/bin/bash打开一个终端窗口
5.使用docker安装软件
安装nginx /mysql
bash
docker run -d -p 80:80 nginx
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker run -d --link mysql:mysql -p 86:80 wordpress:5.6
-d #放后台运行
-p 端口映射 #例子: -p 宿主机端口:容器端口
--name 指定容器的名字 # docker run -it --name jaden 镜像id或者名称
--link 关联另一个容器 # 了解即可
-e MYSQL_ROOT_PASSWORD #设置容器的一些属性,了解一下即可
-it #是给运行起来的这个容器分配一个终端,就可以进入到容器内部操作了
6.docker-compose
docker-compose是批量管理docker容器的工具
bash
#linux 安装
yum install docker-compose -y
# 查看版本
docker-compose -v
配置文件解读,了这个配置文件,就可以通过docker-compose来控制多个容器了
bash
# 注意,下面这个文件内容是严格要求格式的,多一个空格都不行,通过缩进来表示等级关系,下面的这种配置语法叫做yaml语法
version: '3' # docker-compose.yml的文件格式版本
services:
db: #容器名称
image: mysql:5.7
restart: always # 开机自启动的意思
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: 123456 # 和下面的WORDPRESS_DB_PASSWORD值要对应上
wordpress:
depends_on:
- db
image: wordpress:5.6
ports:
- "83:80" # 端口映射
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: 123456
可以将 代码放入xxx.yml 文件中使用指令即可根据文件创建并运行容器。
bash
#创建并启动
docker-compose up -d # 启动之后就可以通过浏览器访问了
#停止并删除
docker-compose down
#重启
docker-compose restart
#停止
docker-compose stop
#启动
docker-compose start
使用命令时要进入 配置文件所在的目录下执行
小白一枚,不足之处请多多指教
借鉴文章: