SpringBoot系列-Docker常用操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ytuglt/article/details/84702796

预配置

由于docker使用默认的地址下载镜像很慢,所以添加一下国内镜像,这里配置中国科学技术大学的镜像,配置如下:
1.打开配置文件

vi /etc/docker/daemon.json

2.添加下面内容

{
          "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

1.镜像操作

1.检索

[root@bogon ~]# docker search mysql
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@bogon ~]# systemctl start docker
[root@bogon ~]# docker search mysql
INDEX       NAME                                                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/mysql                                                  MySQL is a widely used, open-source relati...   7452      [OK]       
docker.io   docker.io/mariadb                                                MariaDB is a community-developed fork of M...   2402      [OK]       
docker.io   docker.io/mysql/mysql-server                                     Optimized MySQL Server Docker images. Crea...   557                  [OK]
docker.io   docker.io/zabbix/zabbix-server-mysql                             Zabbix Server with MySQL database support       148                  [OK]
docker.io   docker.io/hypriot/rpi-mysql                                      RPi-compatible Docker Image with Mysql          102                  
docker.io   docker.io/zabbix/zabbix-web-nginx-mysql                          Zabbix frontend based on Nginx web-server ...   79                   [OK]
docker.io   docker.io/centurylink/mysql                                      Image containing mysql. Optimized to be li...   59                   [OK]
docker.io   docker.io/1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5   ubuntu-16-nginx-php-phpmyadmin-mysql-5          47                   [OK]
docker.io   docker.io/centos/mysql-57-centos7                                MySQL 5.7 SQL database server                   43                   
docker.io   docker.io/mysql/mysql-cluster                                    Experimental MySQL Cluster Docker images. ...   35                   
docker.io   docker.io/tutum/mysql                                            Base docker image to run a MySQL database ...   31                   
docker.io   docker.io/bitnami/mysql                                          Bitnami MySQL Docker Image                      23                   [OK]
docker.io   docker.io/schickling/mysql-backup-s3                             Backup MySQL to S3 (supports periodic back...   23                   [OK]
docker.io   docker.io/linuxserver/mysql                                      A Mysql container, brought to you by Linux...   17                   
docker.io   docker.io/zabbix/zabbix-proxy-mysql                              Zabbix proxy with MySQL database support        17                   [OK]
docker.io   docker.io/centos/mysql-56-centos7                                MySQL 5.6 SQL database server                   12                   
docker.io   docker.io/circleci/mysql                                         MySQL is a widely used, open-source relati...   7                    
docker.io   docker.io/mysql/mysql-router                                     MySQL Router provides transparent routing ...   6                    
docker.io   docker.io/openshift/mysql-55-centos7                             DEPRECATED: A Centos7 based MySQL v5.5 ima...   6                    
docker.io   docker.io/dsteinkopf/backup-all-mysql                            backup all DBs in a mysql server                5                    [OK]
docker.io   docker.io/jelastic/mysql                                         An image of the MySQL database server main...   1                    
docker.io   docker.io/openzipkin/zipkin-mysql                                Mirror of https://quay.io/repository/openz...   1                    
docker.io   docker.io/ansibleplaybookbundle/mysql-apb                        An APB which deploys RHSCL MySQL                0                    [OK]
docker.io   docker.io/cloudfoundry/cf-mysql-ci                               Image used in CI of cf-mysql-release            0                    
docker.io   docker.io/cloudposse/mysql                                       Improved `mysql` service with support for ...   0                    [OK]

其中stars表示有多少人关注,OFFICIAL表示是否是官方发布

也可以从下面的这个网站中检索:
https://hub.docker.com/
在这里插入图片描述

在这里插入图片描述

2)镜像拉取

docker pull 镜像名称:TAG
省略TAG默认为latest

TAG从下图所示位置查看:

在这里插入图片描述

拉去mysql镜像:

[root@bogon ~]# docker pull mysql
Using default tag: latest

可以看到默认为latest

3)查看已经安装的镜像:

[root@bogon ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/mysql     latest              f991c20cb508        2 weeks ago         486 MB

4)删除镜像

docker rmi image-id

2.容器操作

软件镜像(类比qq安装程序)-> 运行镜像->产生一个容器(正在运行的软件,类比运行的qq)

以tomcat为例:

[root@bogon ~]# docker search tomcat
[root@bogon ~]# docker pull tomcat
操作 命令 说明
运行 docker run --name container-name -d image-name
eg:docker run --name myredis -d redis
–name :自定义容器名
-d:后台运行
image-name:制定镜像模板
列表 docker ps (查看运行中的容器) 加上-a,可以查看所有容器
停止 docker stop container-name/container-id 停止当前你运行的程序
启动 docker start container-name/container-id 启动容器
删除 docker rm container-id 删除指定容器
端口映射 -p 6379:6379
eg:docker run -d -p 6379:6379 --name myredis docker.io/redis
-p:主机端口(映射到)容器内部的端口
[root@bogon ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    latest              78b258e36eed        2 weeks ago         463 MB
docker.io/mysql     latest              f991c20cb508        2 weeks ago         486 MB
[root@bogon ~]# docker run --name mytomcat -d tomcat:latest
b3d7d82377d907529b54b09c3c70f12db5ba0753dc3ce4622cd52a12d13f3231
[root@bogon ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
b3d7d82377d9        tomcat:latest       "catalina.sh run"   About a minute ago   Up About a minute   8080/tcp            mytomcat
[root@bogon ~]# docker stop b3d7d82377d9
b3d7d82377d9
[root@bogon ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@bogon ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
b3d7d82377d9        tomcat:latest       "catalina.sh run"   3 minutes ago       Exited (143) 16 seconds ago                       mytomcat
[root@bogon ~]# docker start b3d7d82377d9
b3d7d82377d9
[root@bogon ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
b3d7d82377d9        tomcat:latest       "catalina.sh run"   6 minutes ago       Up 4 seconds        8080/tcp            mytomcat
[root@bogon ~]# docker stop b3d7d82377d9
b3d7d82377d9
[root@bogon ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
b3d7d82377d9        tomcat:latest       "catalina.sh run"   7 minutes ago       Exited (143) 11 seconds ago                       mytomcat
[root@bogon ~]# docker rm b3d7d82377d9
b3d7d82377d9
[root@bogon ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

上面的步骤中启动tomcat在浏览器中是无法访问的,下面映射端口启动

[root@bogon ~]# docker run -d -p 8888:8080 tomcat
f1ef9a36217b9c1f28a40fae59a1a145d76334aa27d1d521e4b6aef9aab72a4b
[root@bogon ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
f1ef9a36217b        tomcat              "catalina.sh run"   34 seconds ago      Up 33 seconds       0.0.0.0:8888->8080/tcp   loving_edison

在外部浏览器中访问http://192.168.0.113:8888/,就会发现现在能够正常访问了
注意:此处能够正常访问,是因为已经把虚拟机的防火墙关闭了,通过以下命令可以查看防火墙状态

[root@bogon ~]# service firewalld status
Redirecting to /bin/systemctl status  firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

可以看到防火墙是关闭的,自己安装的虚拟机需要特别注意下,正常的需要对应开放相应的端口,此处为了方便直接把防火墙关闭了
关闭防火墙:

[root@bogon ~]# service firewalld stop

查看日志:

[root@bogon ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
f1ef9a36217b        tomcat              "catalina.sh run"   7 minutes ago       Up 7 minutes        0.0.0.0:8888->8080/tcp   loving_edison
[root@bogon ~]# docker logs f1ef9a36217b
02-Dec-2018 10:47:12.040 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.5.35
02-Dec-2018 10:47:12.041 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Nov 3 2018 17:39:20 UTC
02-Dec-2018 10:47:12.041 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.5.35.0
02-Dec-2018 10:47:12.041 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
02-Dec-2018 10:47:12.041 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            3.10.0-327.el7.x86_64
02-Dec-2018 10:47:12.041 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64

猜你喜欢

转载自blog.csdn.net/ytuglt/article/details/84702796