1 先删除旧的docker (如果有)
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
2 安装yum工具
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
3更新本地镜像源:
#进入指定文件夹
cd /etc/yum.repos.d
#下载 docker 镜像源配置文件
wget -p https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更换镜像源
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
#将软件包信息提前在本地索引缓存
yum makecache fast
4安装docker
yum install -y docker-ce
5启动docker(记得关闭防火墙)
# 启动docker服务
systemctl start docker
# 停止docker服务
systemctl stop docker
# 重启docker服务
systemctl restart docker
6 docker -v 检查
docker 镜像命令操作
网址:https://hub.docker.com/
#拉取镜像
docker pull [镜像名]:[版本号]
#查看镜像
docker images
#删除镜像
docker rmi [镜像id]
#将镜像导出磁盘
docker save -o [文件名].tar [镜像名]:[版本号]
#加载本地磁盘镜像
docker load -i [文件名].tar
docker 容器命令操作
#创建并运行一个容器
--name 给容器起的名字
-p 端口映射
-d 后台启动
-v 容器文件挂载 宿主机文件:容器文件路径 或者 数据卷名称:容器文件路径 注意:文件对应文件,路径对应路径
-e 环境变量
docker run --name [容器名] -p [宿主机端口]:[容器端口] -v /xx/xx/data:/xx/xx/xx -d [镜像名字名]:[版本]
#查看容器列表
-a 查看全部 不加查看运行中的
docker ps -a
#查看容器日志
-f 跟随查看日志
docker logs -f [容器名字]
#进入容器执行命令
-it 交互式
exit 退出交互式
docker exec -it [容器名] bash
#停掉指定容器
docker stop [容器名]
#启动指定容器
docker start [容器名]
#删除指定容器
-f 强制删除, 运行中的也能删除
docker rm -f [容器名]
docker 数据卷
#创建数据卷
docker volume [二级命令见下方]
create [volume名] 创建一个volume
inspect [volume名] 显示一个或多个volume的信息
ls 列出所有的volume
prune 删除未使用的volume
rm [volume名] 删除一个或多个指定的volume
docker 自定义镜像 创建 Dockerfile文件 文件内容:(java项目)
#指定基础镜像
FROM java:8-alpine
# 拷贝java项目的包 前面是宿主机位置, 后面是镜像
COPY ./docker-demo.jar /tmp/app.jar
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar
docker 构建镜像
#构建 .代表dockerfile文件位置在当前目录下
docker build -t [自定义镜像名]:[自定义版本号] .
#查看构建情况
docker images
DockerCompose 分布式应用
#下载
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#赋予文件权限
chmod +x /usr/local/bin/docker-compose
#补全命令
curl -L http://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
#创建 docker-compose.yml 文件 内容(例子,具体内容以服务为准):
version: "3.2"
services:
#服务名
nacos:
#镜像名
image: nacos/nacos-server
#环境变量
environment:
MODE: standalone
#映射的端口
ports:
- "8848:8848"
#挂载
volumes:
- "$PWD/mysql/data:/var/lib/mysql"
- "$PWD/mysql/conf:/etc/mysql/conf.d/"
#自定义服务写法 自定义服务文件位置 要有 Dockerfile 文件,具体看 docker自定义镜像模块
userservice:
build: ./user-service
ports:
- "10010:10010"
#启动
docker-compose up -d
#日志
docker-compose logs -f
Docker镜像仓库
#配置Docker信任地址
vi /etc/docker/daemon.json
"insecure-registries":["服务器ip:端口号"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker
#命令 无界面
docker run -d \
--restart=always \
--name registry \
-p 5000:5000 \
-v registry-data:/var/lib/registry \
registry
#带图形界面 使用DockerCompose部署带有图象界面的DockerRegistry,docker-compose.yml 内容如下:
version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ui:
image: joxit/docker-registry-ui:static
ports:
- 8080:80
environment:
- REGISTRY_TITLE=私有仓库
- REGISTRY_URL=http://registry:5000
depends_on:
- registry
#创建完docker-compose.yml 后, 执行命令
docker-compose up -d
#浏览器访问指定端口测试
#推送镜像到私有镜像服务必须先tag,步骤如下:
重新tag本地镜像,名称前缀为私有仓库的地址:[ip]:[端口号]/
docker tag [镜像名]:[版本] [ip]:[端口号]/[镜像名]:[版本]
推送镜像
docker push [ip]:[端口号]/[镜像名]:[版本]
③
拉取镜像
docker pull [ip]:[端口号]/[镜像名]:[版本]