docker在linux下的简易安装

  1. 简介

Docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。可以很快速的构建中间件环境,让我们不必将精力集中在中间件的安装上,可以更快的使用或者学习,或者将更多的精力专注于业务的开发。

  1. 安装

  1. centos7安装docker,docker有CE和EE两各版本,CE为社区免费版,此处我们安装CE版本,首先运行卸载命令,卸载系统中老的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
  1. 执行第一条语句的时候可能会出现如下错误

是指有一个应用程序正在锁定yum,等待推出
Another app is currently holding the yum lock; waiting for it to exit...
我们需要执行下面命令
rm -f /var/run/yum.pid
  1. 安装yum工具

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken
  1. 更新本地镜像源

# 设置docker镜像源
yum-config-manager \
    --add-repo \
    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
  1. 执行安装命令

yum install -y docker-ce
  1. 检查linux防火墙是否关闭

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
#查看是否关闭防火墙
systemctl status firewalld
  1. 启动docker服务

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

systemctl status docker    #查看docker状态

systemctl enable  docker    # 开机自启
出现如下代码则表示docker启动成功
Active: active (running) since Fri 2023-02-10 07:11:32 PST; 38s ago
  1. 配置镜像加速

  1. docker官方的镜像加载速度比较差,我们需要配置国内的镜像仓库

sudo mkdir -p /etc/docker  #查看etc文件夹下是否有docker文件夹,如果没有则创建一个
  1. 创建一个daemon.json

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]
}
EOF
  1. 重新加载daemon.json文件

sudo systemctl daemon-reload
  1. 重新启动docker

sudo systemctl restart docker
  1. 镜像操作

docker是一个容器,主要作用还是用来进行部署其他的中间件或者服务,所以对镜像操作还是它最主要的作用

  1. 拉取镜像

  1. 找到镜像地址,在此界面搜索需要的镜像,例如直接搜索redis


https://hub.docker.com/
  1. 点击进去会看到拉取镜像的代码,复制下来直接执行,等待下载完成

docker pull redislabs/redisearch
  1. 查看本地全部镜像

docker images
  1. 启动镜像(如果需要挂载文件启动,则参考其他常用命令中的挂载文件启动)

docker run 镜像id
  1. 删除镜像

docker image rm 镜像id
或
docker rmi 镜像id
#如果要删除废容器,需要使用CONTAINER ID进行删除,此id在使用docker ps -a查询后的的第一个字段
docker rm 镜像id
或(一次删除多个容器,容器id之间使用空格隔开)
docker rm container CONTAINERID1 CONTAINERID2 CONTAINERID3

如果在删除镜像时报错如下,可以加上-f指令

Error response from daemon: conflict: unable to delete dabe38ef4f00 (must be forced) - image is being used by stopped container aa4132868d34
可以使用如下指令
docker rmi -f 镜像id
  1. 修改镜像名称

docker tag 镜像id 新镜像名称:版本
  1. 将jar包打包成镜像,通过docker启动

  1. 在docker目录下创建app目录,在此目录创建jar包目录(如果是单个则可以不创建,主要是为了解决打包镜像是如果多个jar在同一目录下,会将多个jar包的上下文都打包进来,对效率和资源方面都是不友好的),然后将jar包上传到此目录

  1. 创建dockerfile文件,两处的test.jar需要根据实际情况进行更改,并将此文件和jar包放到同目录下

FROM registry.cn-beijing.aliyuncs.com/basetools/oracle-jdk:8u291

MAINTAINER libo3 <libo3@tydic.com>

RUN /usr/glibc-compat/bin/localedef -i en_US -f UTF-8 en_US.UTF-8 && /usr/glibc-compat/bin/localedef -i zh_CN -f UTF-8 zh_CN.UTF-8

RUN mkdir -p /app

copy  test.jar /app

WORKDIR /app

CMD java ${JAVA_OPTS} -jar test.jar

EXPOSE 8080
  1. cd到jar包目录下,使用下面命令进行构建镜像文件

#其中manage是自定义名称,用来在镜像目录展示,可以随便起,V1.0是需要展示的版本,空格后的 . 是表示使用我们上传的dockerfile文件配置进行构建打包
docker build -t manage:v1.0 .
  1. 执行完毕以后就可以使用docker images进行查看了

  1. 其他常用命令

  1. 查看docker版本

docker -v #查看docker版本
  1. 获取容器详细信息(包括容器名称)

docker ps
  1. 进入容器

docker exec -it 容器名 /bin/bash
  1. 查看日志

docker logs -f 容器id
  1. 查询容器id

#可以查询容器id字段
docker ps -q
#可以参与批量停止和批量删除容器的操作
docker stop`docker ps -a -q`
docker rm`docker ps -a -q`
  1. 启动nacos,如果是单机环境,启动时需要添加MODE=standalone,MODE必须大写,启动以后可以解决页面访问不到的问题

docker run -p 8848:8848 -e MODE=standalone --name nacos01 -d nacos/nacos-server
  1. 启动nginx

docker run -d --name nginx -p 80:80 nginx
  1. 启动mysql

docker run --name mysql -v /home/ljaer/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql:latest
  1. 挂载文件启动redis

docker run -itd -p 6379:6379 --name 容器名 -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data redis redis-server /etc/redis/redis.conf 
  1. --name:给容器起一个名字;

  1. -p:端口映射(宿主机端口:容器端口);

  1. -v:挂载自定义配置(自定义配置:容器内部配置);

本命令共有两个挂载:Linux 上自定义的 redis 配置(/docker/redis/conf/redis.conf)挂载到容器内 redis 应用的默认配置文件 /etc/redis/redis.conf;Linux 上自定义的数据存放目录(/docker/redis/data)挂载到容器内 redis 应用的默认数据存放目录(/data)。这样 docker 容器内的 redis 应用会使用 Linux 上自定义的配置文件,docker 容器内的 redis 应用的数据会放到 Linux 上自定义的数据存放目录。

  1. -itd:i:以交互模式运行容器,通常与 -t 同时使用;t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;d:后台运行;

  1. redis-server --appendonly yes: 在容器执行 redis-server 启动命令,并打开 redis 持久化配置;

  1. 注意事项

  1. 在容器中不挂载配置文件启动redis以后远程无法访问的问题,确保防火墙已经关闭

  1. 解决方式一:我们可以通过进入容器内部进行测试redis是否可以使用

  1. 解决方式二(推荐):使用挂载文件,并配置redis远程访问功能,启动以后就可以进行远程访问了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值