Linux使用Docker
简介:
Docker 是一个开源的应用容器引擎。
应用场景
-
Web 应用的自动化打包和发布。
-
自动化测试和持续集成、发布。
文档地址:https://docs.docker
一、docker安装
- CentOS 系统的内核版本高于 3.10 :> uname -r
- 查看是否已经安装过docker: > yum list installed | grep docker
- 存在可以手动删除:> yum remove –y docker.x86_64++
- 安装docker:> yum install -y docker(或是这个 yum install docker)
- 启动docker:> service docker start(或>systemctl start docker.service )
- 重启:restart 停止:stop 查看:status
- 查看是否启动 ps -ef |grep docker
- 设置开机启动 systemctl enable docker
二、帮助命令
- 查看版本:> docker version
- 查询docker的系统信息:> docker info
- 帮助命令:> docker 命令 --help
三、镜像命令
- 列举本地镜像:> docker images
- 查询镜像:> docker search 镜像名(mysql)
- 下载镜像(不写tag默认最新latest):> docker pull 镜像名[:tag] 例如:docker pull redis:latest
- 删除镜像:> docker rmi -f 容器id
- 删除全部容器:> docker rmi -f $(docker images -aq)
四、容器命令
- 查看docker里面的容器有那些:> docker ps -a
- 查看当前正在运行的容器: > docker ps
- 启动容器container id或 name:如:> docker start mysql
- 重启容器:restart
- 删除docker中的容器:> docker rm 容器id or name
- 停用并删除所有容器:> docker stop $(docker ps -q) & docker rm $(docker ps -aq)
- 进入容器 docker run -it centos /bin/bash
- 退出容器 exit
- 查看运行命令 docker ps -a --no-trunc
- 容器内vim 编写文件安装的插件龟速,建议使用:docker cp 模式复制>例子: https://www.cnblogs.com/yzeng/p/13898499.html
五、安装常用环境
- redis 下载镜像安装容器运行 a-> docker run -itd --name redis -p 6379:6379 redis:latest b、客户端使用-> docker exec -it myredis redis-cli
- postgres a、安装 -> docker pull postgres:9.6 b、启动-> docker run --name postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres:9.6
- mysql a、拉取镜像-> docker pull mysql:5.7 b、启动-> docker run --name mysql5.7 -e POSTGRES_PASSWORD=123456 -P -d mysql:5.7
- nginx
备注:具名挂载和匿名挂载,将容器的环境配置挂载至服务器,修改只需要在服务器配置重启环境即可,无需进入容器修改
- --name 镜像启动后名字
- -p 主机端口:容器端口
- -d 后台运行
- -e 修改配置
- -it 使用交互方式运行,进入容器查看内容
六、挂载(具名、匿名)例子:nginx
1、具名挂载:> docker run -d -p 80:80 --name nginx01 -v test-nginx:/etc/nginx nginx
2、查看挂载地址: > docker volume inspect test-nginx
3、查看挂载地址: > docker volume inspect test-nginx
备注:
- 查看卷情况:docker volume ls
- 删除卷:> docker volume rm 卷名
- 容器内的卷没有指定目录的情况下在:/var/lib/docker/volumes/xxx/_data
- ro 、rw 改变读写权限 readOnly readwrite(例:docker run -d -P --name nginx01 -v test-nginx:/etc/nginx:ro nginx)
- -P(大写)随机映射端口
- -v 容器内路径 #匿名挂载
- -v 卷名:容器内路径 #具名挂载
- -v /宿主机路径:容器内路径 #指定路径挂载
七、springboot打包发布
1.idea安装docker工具,方便编辑高亮
2.项目添加Dockerfile,不用后缀
FROM java:8 COPY *.jar /demo.jar CMD ["--server.port=8080"] EXPOSE 8080 ENTRYPOINT ["java","-jar","/demo.jar"]
3.上传至服务器,新建文件夹,打包(注意后面有个点点):> docker build -t testweb .
4.速度慢可修改镜像地址,docker images 查看是否已经正常安装
5.启动:> docker run --name testweb -p 80:8080 -d IMAGEID前3位
> docker run -d --name springboot-pro testweb -p 80:8080
6.验证:> curl localhost:8080/hello
八、配置私有仓库Harbor
1、配置docker上传、下载连接:> vim /usr/lib/systemd/system/docker.service
在ExecStart=最后面添加重启docker --insecure-registry=192.168.xxx.xxx:8014
2、打包:> docker tag demojava 192.168.xxx.xxx:8014/test/demojava
3、登录harbor,输入用户名密码: > docker login 192.168.xxx.xxx:8014
4、推送至仓库: > docker push 192.168.xxx.xxx:8014/test/demojava
5、其他服务器docker下载: > docker pull 192.168.xxx.xxx:8014/test/demojava
6、运行同上
九、redis集群(待补充...)
浙公网安备 33010602011771号