docker的安装与使用
-
安装步骤
1.1 在centos8上面安装docker需要安装containerd.io
安装命令如下:yum install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.4.13-3.1.el8.x86_64.rpm
1.2 docker的安装命令:
curl -sSL https://get.daocloud.io/docker | sh
参数说明:
curl: 在Linux访问网站的命令
-s: 表示静默模式,不打印常规日志
-S:在控制台显示错误日志
-L:跟随重定向
|:Linux中的管道符
sh:是shell的缩写,是Linux的一种脚本1.3 检查是否安装好
docker version
1.4 配置阿里云镜像
打开网站:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
获取镜像地址:sudo mkdir -p /etc/docker sudo vim /etc/docker/daemon.json { "registry-mirrors": ["https://xxx.mirror.aliyuncs.com", "https://hub.daocloud.io"] # 这里的xxx是从阿里云镜像获取的 这里是daocloud的镜像地址,可配置多个 "insecure-registries":["私服的IP地址和端口号"] # 如果有私服可以在这里配置 } sudo systemctl daemon-reload sudo systemctl restart docker
-
docker常用操作
2.1 查看docker版本 :docker version
2.2 查看下载的所有镜像:docker images
2.3 启动docker服务:systemctl start docker systemctl enable docker
2.4 运行一个容器:docker run 镜像的名字
run:执行镜像并生成容器
run首先会从服务器本地查找是否存在这个镜像,如果不存在那么就去中央仓库去下载,如果没找到就报错 -
镜像操作
3.1 拉取镜像到本地:docker pull 镜像的名字 (默认下载最新的镜像) 可以加具体的镜像版本号
可以从这个网址查找详细的版本号:https://hub.daocloud.io/
3.2 删除镜像:docker rmi 镜像标识的前n位(一般写4位就可以了,只要能和其他的镜像id区分开即可)
注意:
如果该镜像启动过容器,那么不能删除,停止了容器以后才可以删除
3.3 镜像的导入导出
导出:docker save -o 导出的路径及导出后的名字 镜像id
导入:docker load -i 镜像名
3.4 修改镜像的名称:docker tag 镜像的标识 新的名字:版本号 -
容器的操作
4.1 启动容器:docker run 镜像的名称[:tag] | 镜像的标识
常用参数:
-d:daemon的首字母,守护进程,后台程序,非交互式的,没有界面的,后台运行的 -i : input的首字母,输入 -it: -t:terminal的首字母,终端 --name:为容器指定名称 -p:用于映射linux的端口号和容器的端口号 -e MYSQL_ROOT_PASSWORD=123456 这是说mysql启动需要的开机密码,默认的账号是root ,密码就是上面设置的:123456 -v /root/data:/var/lib/mysql /root/data/:这是宿主机的数据存放路径(你也可以自定义), /var/lib/mysql:这是mysql容器存放数据的地方。也是为了同步数据,防止,容器被删除以后,数据就不存在了。 例如: 启动tomcat服务,并指定端口号:docker run -d -p 8011:8080 --name first_tomcat tomcat:9.0 启动数据库并设置默认root账户的密码,同时指定数据存放的目录: docker run --name mysql5.5 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /root/data:/var/lib/mysql mysql:5.6
4.2 查看容器:docker ps [-qa]
ps是进程状态的意思,docker ps 是指容器的进程状态查询 -a all 查看全部容器的意思,包括没有运行的容器 -q 只查看容器的标识
4.3 查看容器的日志:docker logs -f 容器的标识
-f是以滚动的方式查看最后几行
4.4 进入容器内部:docker exec -it db bashexec 是执行的意思 -it 交互式运行容器 db 容器标识 bash Linux操作系统的默认操作界面shell
4.5启动停止删除容器相关命令:
停止容器 :docker stop 容器标识 启动容器:docker start 容器标识 重启容器:docker restart 容器标识 删除容器:docker rm 容器id (注意:删除容器时必须先停止容器) 停止所有容器:docker stop ${docker ps -qa} 删除所有容器:docker rm ${docker ps -qa}
-
docker数据卷的操作
创建数据卷:docker volume create 数据卷名称(创建的文件夹默认位置: /var/lib/docker/volumes/) 查看数据卷的详细信息:docker volume inspect 数据卷名称 查看全部数据卷:docker volume ls 删除数据卷:docker volume rm 数据卷名称
5.1 数据卷的使用
使用方法一:先创建一个数据卷,然后用数据卷的名称映射容器内部的路径,当映射数据卷时,如果数据卷不存在,那么docker会自动创建 例:docker run -d -p 8081:8080 --name xs-tomcat-01 -v v-tomcat-01:/user/local/tomcat/webapps 34(镜像id) 使用方法二:直接指定路径,也会自动创建数据卷 例子:docker run -d -p 8082:8080 --name xs-tomcat-02 -v /opt/volumes/v-tomcat-02:/usr/local/tomcat/webapps 34
-
自定义镜像:
6.1 创建一个dockerfile,并自定义镜像信息from daocloud.io/library/tomcat:8.5.57-jdk8-openjdk copy 打包好的war文件 /usr/local/tomcat/webapps 备注:dockerfile文件中只写上面2句话即可 from 指定当前自定义镜像以来的环境 copy 把指定的文件复制到镜像中 workdir 镜像的工作目录 cmd 在workdir下要执行的命令
6.2 通过docker命令制作镜像:docker build -t 没有Tomcat:1.0
6.3 查看镜像是否创建成功:docker images
6.4 导出镜像:docker save -o 导出的路径和命名 镜像id
6.5镜像导入:docker load -i 文件名称 -
docker compose的使用
7.1 简介
docker-compose主要是用来管理docker容器集群的快速编排,要想使用docker-compose必须先下载docker-compose,下载地址:https://github.com/
如果打不开就去ping www.github.com然后在浏览器输入得到的IP就可以访问了
或者直接用这个链接下载:https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64
使用docker-compose需要编写ymal文件,例如:用docker-compose管理MySQL容器与tomcat容器service: mysql: restart: always image: daocloud.io/library/mysql:8.0.1 container_name: mysql-compose ports: - 3306:3306 enviroment: MYSQL_ROOT-PASSWORD: 123456 TZ: Asia/Shanghai volumes: /opt/library/myslq:/var/lib/mysql tomcat: restart: always image: daocloud.io/library/tomcat:8.5.57-jdk8-openjdk container_name: tomcat_compose port: - 8080:8080 enviroment: TZ: Asia/Shanghai volumes: - /opt/volumes/tomcat/webapps:/usr/local/tomcat/webapps - /opt/volumes/tomcat/logs:/usr/local/tomcat/logs
7.2关于docker-compose的常用命令
执行ymal文件启动容器:docker-compose up -d 关闭并删除容器:docker-compose down 关闭容器:docker-compose stop 重启容器:docker-compose restart 启动容器:docker-compose start 查看日志:docker-compose logs -f