前期准备:

docker的功能、作用、优缺点等等自己百度,我就不复制了;
所以要学习docker,肯定是要先准备一个web项目。项目自己准备,有空我可能会上传一个,最近先不做;
以下就是需要准备的内容:

  1. 可用的war包,自己准备,我准备的是一个CRM.war。
  2. Linux系统,在接下来的 准备工作 中有提供下载地址。

准备工作

  1. 虚拟机:准备一个虚拟机软件,我用的是VMwar14,通过电脑管家下载,下载评论里有注册码提供(我最近又看了看,电脑管家的VMware升级到15版了,原注册码也一并失效,所以,VMware就先自己搞吧);
  2. 虚拟机上安装系统:我用的是CenOS7,附镜像下载地址;虚拟机上如何安装linux自行百度即可;
  3. linux系统联网:这个是我当时遇到的问题,我的linux安装完毕后不能联网,系统又没装ifconfig命令,这部分的坑后期补上,目前先行百度吧,这个也很容易找到并解决。

安装docker(yum -y install docker)

进入linux系统,执行命令以下进行 docker的网络安装

yum -y install docker

在这里小白认真搜了一下 yum -y installyum install 命令的区别:

  1. yum install 在找到安装包后会询问用户是否进行安装,即【Is this OK[y/d/N]】,用户需键入y并回车后继续安装操作;
  2. yum -y install 不询问,找到安装包后直接安装;

检查docker是否安装(docker -v / docker version)

安装完成后可进行检查,命令是 docker -v,如果出现下面截图的内容,就说明安装OK了

如何从Docker容器中下载日志 docker 下载软件_小白


补充一点,用户第二天再玩docker的时候可能会发现,咦,docker不能用了?!有个类似的提示

如何从Docker容器中下载日志 docker 下载软件_docker_02


这应该是电脑关机后docker服务被关闭的原因,启动电脑后server并没有启动导致的。

先说一个治标不治本的方法,依次执行下面的代码,启动server即可(上面截图上也有代码),代码执行没有反馈内容;

systemctl daemon-reload
systemctl restart docker.server

然后下面是一个治本的方法,即docker服务设置开机自启:

systemctl enable docker.service

如何从Docker容器中下载日志 docker 下载软件_小白_03


以上,解决第二次开机后docker无法使用的问题

安装镜像(docker pull tomcat)

安装tomcat是指在docker中下载tomcat镜像,首先,搜索tomcat镜像(这一步可有可无)

docker search tomcat

如何从Docker容器中下载日志 docker 下载软件_docker_04

接下来下载并安装最新tomcat镜像( 自带jdk )

docker pull tomcat

查看本机docker现有镜像(docker images)

如何从Docker容器中下载日志 docker 下载软件_docker_05

删除镜像(docker rmi python)

这里可以注意一点,如下图所示,如果本机docker下载了官方镜像,名字是类似于“docker.io/python”之类的,在删除操作中只要写python这个名字就行了,不用写前面的前缀。如果有多个版本,需要加上冒号版本号,类似这样: docker rmi python:latest,就本例来说,一个效果

如何从Docker容器中下载日志 docker 下载软件_docker_06

启动镜像变成容器(docker run)

启动镜像(run),命名容器(–name)并设置映射端口(-p 8080:8080),效果在下面的图中

docker run -d -p 8080:8080 --name tomcat tomcat:latest

注意!如果你启动的是mysql之类的容器,很有可能会启动失败,如下图

如何从Docker容器中下载日志 docker 下载软件_如何从Docker容器中下载日志_07


通过日志可以看到,mysql容器的启动,除了基本的命令外,还要加上密码的初始化配置:-e MYSQL_ROOT_PASSWORD=123456,此时才能启动成功。本文只交流基本命令,不会列出所有“特殊情况”,如果您的容器启动失败,可以先查日志,看看为什么启动失败,如果需要有其他命令,阁下可通过百度自行查询,查询到结果后希望能进行回复,我也好在本文进行后续补充。

查看容器日志(docker logs)

docker logs --since 30m 7a5377d776a0

查看容器7a5377d776a0最近30分钟的日志

查看当前启动容器和未启动容器(docker ps -a)

docker ps
docker ps -a
docker ps --all

上面的命令是查看当前启动的容器,加上 -a 即查看所有容器(all),所有容器意味着不论启动的还是未启动的容器,都将展示出来

如何从Docker容器中下载日志 docker 下载软件_入门_08


此图就是启动容器和查看当前运行容器两条命令

注意:

  1. run就是启动命令;
  2. -d是后台启动,如果不加-d即为前台启动,我们会看到实时日志,但同时将不能进行操作了,因为ctrl+c之后容器会被终止;
  3. -p就是映射端口;
  4. –name是命名该容器,看上面截图最后一列的“NAMES”就是我们自己命名的tomcat;
  5. 最后的tomcat:latest只告诉docker我们启动哪个容器&哪个版本;

删除容器(docker rm 8876762efa67)

删除容器前应该先关闭容器,下面截图就是没关闭容器删除时报的错,删除命令是stop,截图中有使用方法;

如何从Docker容器中下载日志 docker 下载软件_docker_09


以下内容尚未整理,有些杂乱,后续我会整理完毕,如有不明之处,可扣扣沟通

进入容器中

docker exec -it 96f7f14e99ab /bin/bash

将war包放到tomcat内

这是copy命令,所以注意war包路径是不是当前文件夹

docker cp CRM.war 96f7f14e99ab:/usr/local/tomcat/webapps

war包放到webapps下自动解压,此时用ifconfig查看虚拟机IP,然后本机通过IP地址就可以访问到war包的平台了。

此时,平台可以正常演示,第一阶段告一段落,然后进行第一阶段的收尾,即将带有crm.war的容器重新打包成一个镜像,这个时候我们只要换台电脑,上传镜像,启动即可生成新平台。

打包镜像

执行命令

docker export crm_tomcat > crm_container.tar.gz

没有返回信息,然后ls可以看到打好的压缩包;

生成(导入)镜像

打包好镜像后,将压缩包移至其他主机,执行

cat crm_container.tar.gz | docker import - crm_tomcat:v2.0.3

重新导入镜像,然后启动镜像即可访问

docker命令合集

其实我感觉doc而命令并不多,查看“帮助文档” docker help

[root@localhost MMMMJchen]# docker help

Usage:	docker COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default "/root/.docker")
  -D, --debug              Enable debug mode
      --help               Print usage
  -H, --host list          Daemon socket(s) to connect to (default [])
  -l, --log-level string   Set the logging level ("debug", "info", "warn", "error", "fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

Management Commands:
  container   Manage containers
  image       Manage images
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  volume      Manage volumes

Commands:
  attach      Attach to a running container
  build       Build an image from a Dockerfile
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes on a container's filesystem
  events      Get real time events from the server
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

–以下内容未完善–

创建镜像

docker build -t crm:v2.0.1 .

启动镜像

docker run my/python:v1 cal 
##my/python:v1为镜像名和标签

导入导出镜像

docker save > nginx.tar nginx:latest

重启容器

docker restart xxxx