使用root账号登录系统:
$ uname -r //此命令查看内核版本,版本号大于必须3.10
确保 yum 包更新到最新
$ yum update
卸载旧版本(如果安装过旧版本的话)
$ yum remove docker docker-common docker-selinux docker-engine
安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装最新版本的Docker
$ yum install docker-ce docker-ce-cli containerd.io
启动Docker并设置开机启动
$ systemctl start docker
$ systemctl enable docker
验证Docker
$ docker version
启动docker systemctl start docker
重启docker sudo service docker restart
关闭docker service docker stop
关闭docker systemctl stop docker
docker run -d -p 8080:80 镜像的名字:版本号 8080是主机的端口号 80是容器的端口号
-d 表示后台启动 返回容器的id
-t 表示开启虚拟终端,通常与 -i 同时使用
-i 以交互模式运行容器,通常与 -t 同时使用
-v 挂载目录 格式: -v 宿主机目录/容器目录
-p 端口映射 格式 -p 80:8080 80是宿主机端口:8080是容器的端口
--name 给容器起名 格式: --name myname
注意哦,首先删除容器才能删除镜像
docker ps -a 查看所有的容器
docker rm 容器id 删除对应的镜像容器
docker rmi 镜像ID 删除对应的镜像
docker stop $(docker ps -a -q) 停掉所有运行的容器
docker rm $(docker ps -a -q) 删除所有运行的容器
docker rmi -f 镜像ID 先停止容器再删除镜像 一步到位
docker rmi -f $(docker images -qa) 先停止所有容器然后删除所有的镜像
docker attach 容器id 备注:只要这个连接终止,或者使用了exit命令,容器就会退出后台运行
docker exec -it 容器ID /bin/bash 备注:exit退出,容器会在后台运行,实际中一般都是使用该方法进入容器
docker exec -it [id] bash 进入容器
tail -f paysite.log 实时滚动paysite.log日志文件
less paysite.log 查看paysite.log日志文件 b上翻 d下翻 G文件尾 g文件头
docker logs -f --tail=100 f44f38358b53 查看(容器ID:f44f38358b53)最近100行日志(启动不成功的情况 容器外)
新建一个用于存放镜像的文件夹
在新建的文件夹里面新建一个Dockerfile文件,(其中webpay.jar 改成你的jar包名称)
FROM livingobjects/jre8
ADD webpay.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xms2048m","-Xmx2048m","-Duser.timezone=GMT+8","/app.jar"]
cd切换至文件夹下,执行如下命令构建镜像(webpay是镜像的名字,修改为需要的镜像名字)
docker build -t="webpay" .
构建完成之后通过 docker images 查看镜像是否构建成功
启动镜像,执行如下命令
docker run -d --name webpay -p 8006:8001 -it -v /home/alljars/webpay.jar:/app.jar webpay:latest
推送到hub服务器
推送到阿里云个人私服
备份镜像
docker save -o 备份镜像的名字 源镜像名字:tag版本号
举例:
docker save -o myself_mysql.tar mysql:5.5 //执行此命令会在宿主机跟目录下(/root)生成myself_mysql.tar
镜像还原
docker load -i 还原的镜像名字(带路径)
举例:
docker load -i myself_mysql.tar //执行此命令会从宿主机跟目录(/root)下加载 myself_mysql.tar
拉取镜像:
$ docker pull mysql:5.7 拉取mysql5.7版本
运行一个容器,启动mysql5.7
$ docker run --name mysql57 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
首先拉取镜像
$ docker pull redis:latest
查看本地是否存在redis镜像
$ docker images
启动镜像
$ docker run -itd --name redis-test -p 6379:6379 redis
参数说明:
-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。
备注:密码启动
docker run --name redis -p 8001:6379 -d --restart=always redis:latest redis-server --appendonly yes --requirepass "dsl123@password"