一、在linux虚拟机上安装docker

# 1、检查内核版本,必须是3.10及以上
[root@Host ~]# uname -r
3.10.0-327.el7.x86_64

# 2、安装docker(联网的情况下)
yum install docker

# 3、输入y确认安装(下载完之后)

# 4、启动docker
[root@localhost ~]# systemctl start docker
# 查看当前docker版本
[root@localhost ~]# docker -v
Docker version 1.12.6, build 3e8e77d/1.12.6

# 5、设置开机启动docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

# 6、停止docker
systemctl stop docker

docker安装完成标识

二、安装后启动不了docker(可能遇到的问题)

安装后启动不了docker

网上了解了一下,意思是:此linux的内核中的SELinux不支持 overlay2 graph driver ,解决方法有两个,要么启动一个新内核,要么就在docker里禁用selinux,–selinux-enabled=false

# 打开编辑docker
vi /etc/sysconfig/docker
# 设置
--selinux-enabled=false

设置

设置之后启动成功了

三、Docker常用命令&操作

1)镜像操作
操作命令说明
检索docker search 关键字 eg:docker search redis我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。
拉取docker pull 镜像名:tag:tag是可选的,tag表示标签,多为软件的版本,默认是latest
列表docker images查看所有本地镜像
删除docker rmi image-id删除指定的本地镜像

相关网址:https://hub.docker.com/

2)安装tomcat
1、搜索镜像
[root@localhost ~]# docker search tomcat
镜像名只要看 docker.io/ 后面的就行了

2、拉取镜像
[root@localhost ~]# docker pull tomcat
Using default tag: latest #默认最新版
Digest: sha256:d60c13a2bfdbbeb9cf1c84fd3cb0a1577b2bbaeec11e44bf345f4da90586e9e1 #出现该标志则表示拉取镜像成功
[root@Host0800275f4345 ~]# docker images  #查看当前docker中所有镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    latest              61205f6444f9        4 days ago          467 MB
docker.io/mysql     latest              a8a59477268d        5 weeks ago         445 MB

docker pull tomcat:8.5  #拉取相应版本软件,默认为latest版本,可以不加


3、根据镜像启动容器
docker run --name mytomcat -d tomcat:latest

# --name mytomcat 给当前tomcat命名 

4、docker ps  
查看运行中的容器
[root@Host0800275f4345 ~]# docker ps
CONTAINER ID        IMAGE      COMMAND            CREATED         STATUS           PORTS          NAMES
181d66b8453a        tomcat     "catalina.sh run"     36 seconds ago     Up 33 seconds      8080/tcp        mytomcat

5、 停止运行中的容器
docker stop  容器的id

6、查看所有的容器
docker ps -a

7、启动容器
docker start 容器id

8、删除一个容器
 docker rm 容器id

9、启动一个做了端口映射的tomcat(需要映射端口号不然外网访问不了)
[root@localhost ~]# docker run -d -p 8888:8080 tomcat
-d:后台运行
-p: 将主机的端口映射到容器的一个端口    主机端口:容器内部的端口

10、为了演示简单关闭了linux的防火墙
service firewalld status ;查看防火墙状态
service firewalld stop:关闭防火墙

11、查看容器的日志
docker logs container-name/container-id

更多命令参看
https://docs.docker.com/engine/reference/commandline/docker/
可以参考每一个镜像的文档
3)安装MySQL
docker pull mysql

错误的启动

[root@localhost ~]# docker run --name mysql01 -d mysql
42f09819908bb72dd99ae19e792e0a5d03c48638421fa64cce5f8ba0f40f5846

mysql退出了
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                           PORTS               NAMES
42f09819908b        mysql               "docker-entrypoint.sh"   34 seconds ago      Exited (1) 33 seconds ago                            mysql01
538bde63e500        tomcat              "catalina.sh run"        About an hour ago   Exited (143) About an hour ago                       compassionate_
goldstine
c4f1ac60b3fc        tomcat              "catalina.sh run"        About an hour ago   Exited (143) About an hour ago                       lonely_fermi
81ec743a5271        tomcat              "catalina.sh run"        About an hour ago   Exited (143) About an hour ago                       sick_ramanujan


//错误日志
[root@localhost ~]# docker logs 42f09819908b
error: database is uninitialized and password option is not specified 
  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD;这个三个参数必须指定一个

正确的启动

[root@localhost ~]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
b874c56bec49fb43024b3805ab51e9097da779f2f572c22c695305dedd684c5f
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
b874c56bec49        mysql               "docker-entrypoint.sh"   4 seconds ago       Up 3 seconds        3306/tcp            mysql01

做了端口映射

[root@localhost ~]# docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
ad10e4bc5c6a        mysql               "docker-entrypoint.sh"   4 seconds ago       Up 2 seconds        0.0.0.0:3306->3306/tcp   mysql02
导入导出镜像

镜像(reprositoty:tag 或者镜像ID)
1. 导出: docker save reprositoty:tag 或者镜像ID > /root/xx.tar.gz
2. 导入: docker load < /root/xx.tar.gz

启动容器:
1. 交互方式启动容器: docker run -it –name 名字 镜像 /bin/bash
进去容器后需要退出:exit
2. 守护进程方式启动容器: docker run -d –name 名字 镜像
3. 查看运行中容器 : docker ps -a
4. 停止 : docker stop 名字
5. 重启 : docker start 容器名称或镜像ID
6. 删除: docker rm 容器名称或镜像ID

tomcat项目部署
- 先启动tomcat镜像: docker run -d –name mytomcat -p 8090:8080 tomcat
(访问端口为8090)
以交互方式进入到tomcat : docker exec -it mytomcat /bin/bash

  • 打war包,再把war包丢到linux上,之后再将其cp到容器中(自己会解压部署)
    命令 : docker cp XXX.war mytomcat:/usr/local/tomcat/webapps

国内加速镜像 http://www.docker-cn.com/registry-mirror

# 国内加速镜像下载示例
$ docker pull registry.docker-cn.com/library/ubuntu:16.04
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:23 天前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐