docker常见使用笔记

2 篇文章 0 订阅
1 篇文章 0 订阅

Docker

1、简介

Docker是一个开源的应用容器引擎;是一个轻量级容器技术;

Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;

运行中的这个镜像称为容器,容器启动是非常快速的。

![](/images/01.png)

![](/images/02.png)

2、核心概念

docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);

docker客户端(Client):连接docker主机进行操作;

docker仓库(Registry):用来保存各种打包好的软件镜像;

docker守护进程(daemon): 一般在宿主主机后台运行,等待接收来自客户端的消息。

docker镜像(Images):软件打包好的镜像;放在docker仓库中;

docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

![](/images/03.png)

使用Docker的步骤:

1)、安装Docker

2)、去Docker仓库找到这个软件对应的镜像;

3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器;

4)、对容器的启动停止就是对软件的启动停止。

3、安装Docker

1)、安装linux虚拟机

​   1)、VMWare(教程使用)、VirtualBox;

​    2)、导入虚拟机文件centos7.ova;

​        (1)、首先点击“打开虚拟机:

![](/images/04.png)

​        (2)、选择虚拟机文件centos7.ova后点击“打开”:

![](/images/05.png)

​        (3)、新虚拟机名称和存储路径可以自行修改,点击“导入”:

![](/images/06.png)

​        (4)、系统可能会跳出错误提示,直接点击“重试,等待导入完成:

![](/images/07.png)

​        (5)、导入成功后,选择该虚拟机,点击菜单栏的”编辑“--”虚拟网络编辑器“:

![](/images/08.png)

​        (6)、选择VMNET0--桥接模式--选择当前电脑连接互联网使用的网卡后点击”确定“:

![](/images/09.png)

​    3)、双击启动linux虚拟机;使用  root/ 123456登陆

​    4)、查看linux的ip地址

```shell
$ ip addr  /ifconfig
```

​    8)、使用客户端连接linux(SecureCRT);

​        (1)、输入主机名(ip地址)用户名(root)后点击”连接“:

![1561187488117](/images/10.png)

​        (2)、点击”接受并保存“:

![1561187619348](D:\course\docker\document\images\11.png)

​        (3)、输入密码123456:

![1561187749770](/images/12.png)

2)、在linux虚拟机上安装docker

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

**安装步骤:**

​    1、Docker 要求 CentOS 系统的内核版本高于 3.10  。

通过 **uname -r** 命令查看当前的内核版本

```shell
 [root@localhost ~]#uname -r
```

​    

​    2、使用 `root` 权限登录 Centos。确保 yum 包更新到最新。

```shell
[root@localhost ~]#sudo yum update
```

​    3、卸载旧版本(如果安装过旧版本的话)

```shell
[root@localhost ~]#sudo yum remove docker  docker-common docker-selinux docker-engine
```

​    4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

```shell
[root@localhost ~]#sudo yum install -y yum-utils device-mapper-persistent-data lvm2
```

​    5、设置yum源

```shell
[root@localhost ~]#sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

这个源是国外网站的,有可能会很慢,可以改成阿里云提供的镜像,二者执行一个即可:

[root@localhost ~]#sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
```

​    6、可以查看所有仓库中所有docker版本,并选择特定版本安装

```shell
[root@localhost ~]#yum list docker-ce --showduplicates | sort -r

```

![1561189409185](/images/13.png)

​    7、安装docker

```shell
[root@localhost ~]#sudo yum install docker-ce  #这里安装的是最新稳定版18.09.6
[root@localhost ~]#sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.1.ce

```

​    8、启动并加入开机启动

```shell
[root@localhost ~]#sudo systemctl start docker
[root@localhost ~]#sudo systemctl enable docker

```

​    9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

```shell
[root@localhost ~]#docker version
```

![1561189892227](/images/14.png)

​    10、停止docker

```shell
[root@localhost ~]#sudo systemctl stop docker
```

4、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)、容器操作

软件镜像(QQ安装程序)----运行镜像----产生一个容器(正在运行的软件,运行的QQ);

步骤:

```shell
    1、搜索镜像
[root@localhost ~]# docker search tomcat

    2、拉取镜像
[root@localhost ~]# docker pull tomcat

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

    4、查看运行中的容器
[root@localhost ~]# docker ps  

    5、停止运行中的容器
[root@localhost ~]# docker stop  容器的id

    6、查看所有的容器
[root@localhost ~]# docker ps -a

    7、启动容器
[root@localhost ~]# docker start 容器id

    8、删除一个容器
[root@localhost ~]# 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示例

```shell
docker pull mysql
```

错误的启动

```shell
[root@localhost ~]# docker run --name mysql01 -d mysql
f077e80f0b5463d7680413c91bf11265e3ad2b6e66f932977535057fc517381a

mysql退出了
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                           PORTS               NAMES
f077e80f0b54        mysql               "docker-entrypoint.sh"   34 seconds ago      Exited (1) 33 seconds ago                            mysql01


//错误日志
[root@localhost ~]# docker logs f077e80f0b54
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;这个三个参数必须指定一个
```

正确的启动

```shell
[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
4d177d6518a6        mysql               "docker-entrypoint.sh"   4 seconds ago       Up 3 seconds        3306/tcp            mysql01
```

做了端口映射

```shell
[root@localhost ~]# docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
b931bbc89831306645910006ef55407d85ead7f0db763778240529f9d3cfc578
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
b931bbc89831        mysql               "docker-entrypoint.sh"   4 seconds ago       Up 2 seconds        0.0.0.0:3306->3306/tcp   mysql02
```

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值