docker自学入门教程

1 docker的安装

1.1 卸载旧版本 docker

如果有旧版本 docker可先卸载
docker remove docker*

1.2 下载相关依赖

yun install -y yum-utils

1.3 配置 docker 的安装源地址

yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo (官网地址,比较慢)
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo (阿里云地址)

1.4 安装 docker

yum install -y docker-ce docker-ce-cli containerd.io(安装最新版本的docker)
yum install -y docker-ce-17.04 docker-ce-cli containerd.io(安装指定版本(17.04)的docker)
docker-ce:docker 的社区版, 还有 docker-ee:docker 的企业版(收费)
docker-ce-cli:docker 的命令行工具 containerd.io:docker 的运行环境

1.5 设置开机启动

systemctl enable docker --now
--now 表示立即重启

1.6 简单命令检验是否安装成功

docker ps -a (不加-a是查询运行中的镜像, 加-a表示查询所有镜像,不管是运行中的还是停止的)
docker info (查询docker的基本信息)

1.7 配置镜像加速器(官网属于国外网站,下载镜像会比较慢, 推荐阿里云)

临时生效:docker --registry-mirror=https://xxxxxxx.mirror.aliyuncs.com (阿里云地址可以去阿里云官网,登录之后去获取)
永久生效:复制命令执行,阿里云地址自行修改,配置多个可以以逗号分隔
相关文件配置可参考官网:https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file
点击查看代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.8 docker 官网的镜像仓库地址

https://hub.docker.com/
可在该网站中,自行搜索需要安装的镜像

2 docker基本操作

2.1 docker 基本命令操作

下载 nginx 镜像:docker pull nginx 下载最新版本的nginx,docker pull nginx:1.20.1 下载指定版本的nginx
查看所有镜像:docker images
删除镜像: docker rmi 镜像名或者镜像ID
启动镜像:
	docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
	docker run 配置项 镜像名 镜像启动运行命令(默认都有,一般不写)
	举例: docker run --name=nginx -d --restart=always -p 80:80 nginx (--name表示应用名称 --restart表示应用可以开机自启 -d表示后台启动 -p表示端口映射,服务器端口和docker主机端口映射)
	再次运行,也可以使用 docker start 应用名称
	停止运行 docker stop 应用名称
删除容器: docker rm 名称,强制删除可以加-f

2.2 进入容器修改内容

docker exec -it 容器 /bin/bash
exec表示是在一个运行状态下的容器里执行命令,it表示交互终端,总的意思就是在某个容器的交互终端执行/bin/bash,如果bash不能用,可以尝试/bin/sh
演示一下修改 nginx 的 index.html:

image
image
image

2.3 挂载

作用:类似于端口的映射,就是将外部的配置内容映射到容器中
举例:nginx,将外部服务器中/home/nginx/html文件夹映射到容器中的/user/share/nginx/html中,简单说就是替换
docker run --name=nginx -d --restart=always -p 80:80 -v /home/nginx/html:/usr/share/nginx/html nginx (-v就表示文件挂载,前面部分是外部服务器的目录内容,后面部分是容器中的内容,后面还可以加:ro或:rw,表示只读或读写,可以配置多个-v挂载)

image

2.4 镜像保存(适用单个服务器操作)

docker 容器运行的镜像会一直进行优化,所以希望将镜像保存,方便后续的维护和使用
docker commit -a "junmo" -m "修改index.html" nginx-example nginx-module:1.0.0
-a表示提交人 -m表示提交备注 nginx-example本地容器名称(自行修改) nginx-module:1.0.0生成的镜像名称和版本号(自定义)

image

2.5 镜像保存(适用多个服务器之间传输)

docker save -o /home/nginx-module.tar nginx-module:1.0.0
-o表示要保存的文件地址,规则是.tar文件,nginx-module:1.0.0是要保存的镜像
文件生成之后,就可以多台服务器之间传输了(scp /home/nginx-module.tar 用户名@IP:保存的地址)
加载镜像文件:docker load -i /home/nginx-module.tar

image
image

2.6 本地镜像推送远程仓库

首先需要去docker官网注册一个账户,然后创建一个仓库(假如是junmo/myRepo)
docker tag nginx-module:1.0.0(本地镜像) junmo/myRepo:1.0.0(本地镜像改名为远程镜像)
docker login(先登录)
docker push junmo/myRepo:1.0.0(推送)
docker logout(退出)

2.7 docker其他常用命令

查看容器的日志:docker logs 容器
复制容器中的文件到本机:docker cp 容器:容器中的文件 本机的文件位置
docker cp nginxServer:/etc/nginx/nginx.conf /home/nginx/config/nginx.config

2.8 docker 启动 redis

docker run \
-v /home/redis/config/redis.config:/etc/redis/redis.config \
-v /home/redis/data:/data \
-d --name=redisServer \
-p 6379:6379 \
redis:latest \
redis-server /etc/redis/redis.config
单机启动,可参考

3 docker 构建 java 项目

3.1 准备文件

1 java项目jar包。(自行准备)
2 创建Dockerfile文件
  文件内容可自行百度,这边提供个简单版:
点击查看代码
FROM openjdk:8-jdk-slim (依赖的java环境)
LABEL maintainer=作者名
COPY jar包的位置(/home/java/demo.jar) 上传到docker容器中的位置(/test.jar) (本机文件复制到docker容器中)
ENTRYPOINT["java", "-jar","/test.jar"](启动命令)

3.2 构建 java项目

docker build -t java-test:V1.0 -f Dockerfile .
-t表示镜像的标签名(自定义设置),-f表示指定Dockerfile文件,最后一个.表示当前目录下,可根据实际情况配置相关位置

3.3 启动。(启动命令可参考上面讲解)

posted @ 2022-06-19 18:58  OpenSir  阅读(281)  评论(0编辑  收藏  举报