springboot之docker
2019-12-16 本文已影响0人
eliteTyc
- 安装docker
yum install docker
- 启动docker
systemctl start docker
- 检查docker是否启动成功
docker -v
显示:Docker version 1.13.1, build 7f2769b/1.13.1
- 修改docker国内镜像加速
- 访问 阿里云docker加速
- vim /etc/docker/daemon.json
{ "registry-mirrors": ["加速地址"] } - 使生效:sudo systemctl daemon-reload
- 重启docker服务:sudo systemctl restart docker
- 设置docker开机自启
systemctl enable docker
- 停止docker服务
systemctl stop docker
-
docker常用操作
- 检索:docker search mysql(需要搜索的镜像名称)
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/mysql MySQL is a widely used, open-source relati... 8930 [OK] docker.io docker.io/mariadb MariaDB is a community-developed fork of M... 3140 [OK] docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 659 [OK] docker.io docker.io/percona Percona Server is a fork of the MySQL rela... 462 [OK] docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 66 docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li... 61 [OK] docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 59 docker.io docker.io/deitch/mysql-backup REPLACED! Please use http://hub.docker.com... 41 [OK] docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 35 [OK] docker.io docker.io/tutum/mysql Base docker image to run a MySQL database ... 34 docker.io docker.io/schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic back... 28 [OK] docker.io docker.io/prom/mysqld-exporter 23 [OK] docker.io docker.io/linuxserver/mysql A Mysql container, brought to you by Linux... 22 docker.io docker.io/centos/mysql-56-centos7 MySQL 5.6 SQL database server 17 docker.io docker.io/circleci/mysql MySQL is a widely used, open-source relati... 16 docker.io docker.io/mysql/mysql-router MySQL Router provides transparent routing ... 14 docker.io docker.io/arey/mysql-client Run a MySQL client from a docker container 13 [OK] docker.io docker.io/openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima... 6 docker.io docker.io/fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron t... 4 [OK] docker.io docker.io/genschsa/mysql-employees MySQL Employee Sample Database 3 [OK] docker.io docker.io/ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK] docker.io docker.io/devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offi... 2 docker.io docker.io/jelastic/mysql An image of the MySQL database server main... 1 docker.io docker.io/monasca/mysql-init A minimal decoupled init container for mysql 0 docker.io docker.io/widdpim/mysql-client Dockerized MySQL Client (5.7) including Cu... 0 [OK]- 拉取镜像:docker pull mysql(镜像名称,也就是上一步搜索结果NAME字段中去掉docker.io/后的名称)
- 默认下载的是latest版本的镜像,需要下载其他版本可以使用:docker pull mysql:5.5(版本号)
- 查看镜像列表:docker images
- 删除镜像:
- 删除未运行过的镜像
- 直接:docker rmi 镜像id
- 删除已运行过的镜像
- 先删除运行时生成的容器
- docker ps -a 查看所有的容器
- 如果当前容器在运行:docker stop 容器id
- 当前容器未运行:docker rm 容器id
- 删除镜像:docker rmi 镜像id
- 先删除运行时生成的容器
- 删除未运行过的镜像
- 运行镜像
docker run -p 80:8080 --name 自己给容器取的名字 -d 镜像的名称:版本号 例如:docker run -p 3306:3306 --name MyMySql -d mysql:latest --name是给容器去一个别名 -d是表示后台运行,否者命令行窗口关闭,容器就停止运行了 -p 8888:8080 设置端口映射,前一个端口为主机的端口,后一个端口为docker的端口,意思是访问主机的8888端口相当于访问docker的8080端口 注意:不同镜像的运行方式,所带参数不同,可以根据官方文档进行运行- 查看容器列表 docker ps -a
- 查看容器的启动日志: docker logs 容器id
-
其他操作
- 修改原镜像生成新的镜像
1.运行tomcat镜像
2.进入tomcat容器删除doc文件夹// -d 表示后台运行,否则控制台一退出,tomcat也退出了 docker run -d -p 8888:8080 tomcat
3.生成新的容器// 进入正在运行的容器 docker exec -it 容器id /bin/bash // 进入/usr/local/tomcat/webapps 删除doc目录 rm -rf doc
4.查看镜像并且运行docker commit -a="tyc" -m="没有doc的tomcat容器" 4f8827c136ee elitetyc/tomcat:1.0//docker images elitetyc/tomcat 1.0 51983f8840ee 54 seconds ago 507MB // docker run -d -p 8888:8080 51983f8840ee(生成的镜像的id)
- 修改原镜像生成新的镜像
-
制作镜像
- 1.编写Dockerfile文件
//从那个基础镜像开始构建
FROM centos
// 设置一个变量 mypath 为/tmp
ENV mypath /tmp
// 将登录目录设置为tmp
WORKDIR $mypath
// 执行命令安装vim和网络工具
RUN yum -y install vim
RUN yum -y install net-tools
// 对外暴露80端口
EXPOSE 80
// 打印输出提示
CMD echo "构建成功..."
CMD /bin/bash
- 构建镜像
1.进入编写dockerfile的目录执行以下命令
注意:最后一个点表示在当前目录下寻找dockerfile文件docker build -t 要生成的镜像名称:版本号 .