前面我们大致搞清楚了docker的形态、基本构成,使用的基本流程。接下来我们需要练个手,在实际使用中体会Docker,使我们对它的认识更全面。

一般在实际项目应用中都是在Linux系统上部署Docker的,所以我们在linux上练习。目前几乎所有Linux系统(RHEL/Centeros、Debian/Ubuntu、gentoo、arch linux)都支持Docker。以Linux内核的,用到Linux内核3.8以上才支持Docker。除了RHEL/Centeros,内核为2.6.32-431的RHEL/Centeros6.5可以支持Docker。

在接下来的练习中,使用的是博主的Azure虚拟机Linux (ubuntu 18.04)。

一、安装Docker

先查看linux内核

uname -r

使用apt命令,先更新下apt

sudo apt-get update

然后安装docker

sudo apt-get install docker.io

启动守护进程

sudo service docker start docker start/running. process 3050

运行helloworld程序

sudo docker run hello-world

查看docker是否安装成功

docker version

为了不用每次执行docker都要加sudo,可以将用户名加到docker组中,例如,yangyoushanPC0是我的用户名。

yangyoushanPC0@yangyoushanVPC001:~$ sudo group add docker
[sudo] password for yangyoushanPC0:
sudo: group: command not found
yangyoushanPC0@yangyoushanVPC001:~$ sudo groupadd docker
groupadd: group 'docker' already exists
yangyoushanPC0@yangyoushanVPC001:~$ sudo gpasswd -a yangyoushanPC0 docker
Adding user yangyoushanPC0 to group docker
yangyoushanPC0@yangyoushanVPC001:~$ newgrp docker

测试一下,运行hello-world,不用加sudo了,

yangyoushanPC0@yangyoushanVPC001:~$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.
To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:https://hub.docker.com/
For more examples and ideas, visit:https://docs.docker.com/get-started/

查看镜像 docker images

yangyoushanPC0@yangyoushanVPC001:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              fce289e99eb9        11 months ago       1.84kB

二、测试搭建WordPress

WordPress是一款php开发的博客平台,数据库mysql。提供了很多第三方模板共用户使用。一般演示云计算PaaS平台时,比较喜欢用这个项目做例子。这里我们不研究他的技术结构,只当作一个例子使用。

拉取wordpress镜像

docker pull wordpress

yangyoushanPC0@yangyoushanVPC001:~$ docker pull wordpress
Using default tag: latest
latest: Pulling from library/wordpress
000eee12ec04: Pull complete
8ae4f9fcfeea: Pull complete
60f22fbbd07a: Pull complete
ccc7a63ad75f: Pull complete
a2427b8dd6e7: Pull complete
91cac3b30184: Pull complete
d6e40015fc10: Pull complete
3951eb02eb9d: Pull complete
a30c5ce4d825: Pull complete
1d2fc8e19e4d: Pull complete
8c746235d858: Pull complete
887411e72bcf: Pull complete
eba633920d44: Pull complete
9b7007daa55e: Pull complete
4d20187eeb14: Pull complete
3e1b35074ec2: Pull complete
a13668f53ada: Pull complete
38760061f7fb: Pull complete
9448b0eeecae: Pull complete
e75a2465ca33: Pull complete
e8661141192e: Pull complete
Digest: sha256:add5816d1c04fdf1509e298af0ec16f8485cd165292bd4245ffdbb9a1db87429
Status: Downloaded newer image for wordpress:latest

查看镜像

docker images

yangyoushanPC0@yangyoushanVPC001:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wordpress           latest              b9db6e8f3175        3 days ago          539MB
hello-world         latest              fce289e99eb9        11 months ago       1.84kB

前面我们知道,下载的完整文件系统和程序包,叫做镜像;运行程序包叫做容器。

开始以这个镜像启动一个容器,让这个容器运行在8080端口

docker run -it --name yysWordpress -p 8080:80 -d wordpress

然后查看已运行的容器

docker ps -a

yangyoushanPC0@yangyoushanVPC001:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
82c909c79d8c        wordpress           "docker-entrypoint.s鈥   51 seconds ago      Up 49 seconds       0.0.0.0:8080->80/tcp   yysWordpress

如下在浏览器输入:http://52.179.83.77:8080/,52.179.83.77是我的虚拟机公网IP。

如果访问不通,而且部署使用的是云虚拟机,先检查云虚拟机配置的安全组的入站规则,是否开通了协议和端口,例如,我开通了8080的访问权限。

打开网页成功。

选择 简体中文,继续,

程序部署成功。

接下来就要配置数据库,

拉取mysql镜像,指定版本号

docker pull mysql:5.7

yangyoushanPC0@yangyoushanVPC001:~$ docker pull mysql:5.7
5.7: Pulling from library/mysql
d599a449871e: Pull complete
f287049d3170: Pull complete
08947732a1b0: Pull complete
96f3056887f2: Pull complete
871f7f65f017: Pull complete
1dd50c4b99cb: Extracting [==============================>                    ]  7.471MB/12.11MB
5bcbdf508448: Download complete
02a97db830bd: Download complete
c09912a99bce: Download complete
08a981fc6a89: Download complete
818a84239152: Download complete

查看镜像

docker images

yangyoushanPC0@yangyoushanVPC001:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wordpress           latest              b9db6e8f3175        3 days ago          539MB
hello-world         latest              fce289e99eb9        11 months ago       1.84kB

镜像准备ok,启动容器

docker run -it --name=mysql5.7 -p 6060:6061 -e MYSQL_ROOT_PASSWORD=你自己的密码 -e serverTimezone=Asia/Shanghai -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci  --lower_case_table_names=1

设置端口,设置密码,设置时区

yangyoushanPC0@yangyoushanVPC001:~$ docker run -it --name=mysql5.7 -p 6060:6061 -e MYSQL_ROOT_PASSWORD=9527 -e serverTimezone=Asia/Shanghai -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci  --lower_case_table_names=1
Unable to find image 'mysql:5.7' locally
5.7: Pulling from library/mysql
d599a449871e: Pull complete
f287049d3170: Pull complete
08947732a1b0: Pull complete
96f3056887f2: Pull complete
871f7f65f017: Pull complete
1dd50c4b99cb: Pull complete
5bcbdf508448: Pull complete
02a97db830bd: Pull complete
c09912a99bce: Pull complete
08a981fc6a89: Pull complete
818a84239152: Pull complete
Digest: sha256:5779c71a4730da36f013a23a437b5831198e68e634575f487d37a0639470e3a8
Status: Downloaded newer image for mysql:5.7
c5ee950e7b67fb87246fc898e5c7a985a8a05bbb26551b2a998840388f04c773

查看容器

docker ps -a

yangyoushanPC0@yangyoushanVPC001:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
fd6daa9f1b2a        mysql:5.7           "docker-entrypoint.s鈥   34 seconds ago      Up 30 seconds       33060/tcp, 0.0.0.0:3305->3306/tcp   mysql5.7
82c909c79d8c        wordpress           "docker-entrypoint.s鈥   About an hour ago   Up About an hour    0.0.0.0:8080->80/tcp

修改mysql设置,允许外部访问

yangyoushanPC0@yangyoushanVPC001:~$ docker exec -it mysql5.7 bash
root@fd6daa9f1b2a:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.28 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

虚拟机上的,或者说服务器上mysql都安装好了,我们需要一个客户端管理,查看mysql数据库。可以在本地PC安装一个mysql管理工具,我一般使用navicat。

navicat上连接上刚才配置的mysql数据库。

连接上后,创建一个database

返回wordpress页面,配置数据库信息

配置OK,点击提交。

现在可以在网站上继续安装wordpress了,

根据提示填写你的信息

安装成功后返回页面登陆进去后

再测试一下发布文章

 再看数据库,已经自动创建了表

个人网站成功创建了。大家也可以直接访问http://52.179.83.77:8080/查看测试的结果(注意:博主的虚拟机大约一年左右,如果到期就看不了啦!)。

这样我们使用现有的镜像,启用了容器,部署了一个个人博客网站。是不是很有趣,接下来我们就详细学习Docker吧。

菜鸟入门Docker—练习使用Docker相关推荐

  1. 菜鸟入门Docker—Mac上安装Docker

    1.安装 docker官网找到for mac的安装包Docker.dmg文件下载安装即可.将docer拖到应用里.安装成功后任务栏会有docker标志. 配置镜像地址 打开任务栏图标,进入prefer ...

  2. Docker(一):Docker入门教程

    如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...

  3. Docker教程(一) Docker入门教程

    Docker教程(一) Docker入门教程 本文链接:https://blog.csdn.net/yuan_xw/article/details/51935278 Docker教程(一) Docke ...

  4. 容器入门(3) - docker

    <OpenShift 4.x HOL教程汇总> 文章目录 安装Docker客户端 客户端配置文件 登录/登出Container Registry 登录身份凭证 查询镜像 pull/push ...

  5. Docker入门到实践 (一) docker简介与安装、常用命令讲解

    Docker入门到实践 (一) docker简介与安装 一.docker 介绍   Docker 是一个开源的应用容器引擎 打包应用以及依赖包到一个可移植的镜像中,发布到任何机器上,实现虚拟化.容器是 ...

  6. Docker学习1——Docker入门

    Docker学习1--Docker入门 参考资料 1.Docker简介 2.尚硅谷2022版Docker实战教程(docker教程天花板) 1.1 Docker简介 1.1.1 Docker引入 假定 ...

  7. Docker入门指南:基于 docker 搭建机器学习/深度学习开发环境

    实际工作中,许多项目开发需要在Linux服务器上进行,本文为习惯使用 Windows 操作系统的朋友介绍一种基于Docker的,跨平台.便携性(方便移植.重新部署.可远程访问)的开发环境搭建方法. 1 ...

  8. csdn涨薪秘籍Docker(一):Docker入门教程

    前言: 如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步 ...

  9. 进击的docker 二 : docker 快速入门

    1.安装docker 1.1.安装环境 [root@docker ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [r ...

最新文章

  1. Jquery各版本下载
  2. Codeforces Round #554 (Div. 2) C. Neko does Maths (简单推导)
  3. C++20四大之一:module特性详解
  4. CCNA 实验三 3.2 2 默认路由
  5. HDU - 3374 String Problem(最小表示法+最大表示法+KMP的next数组)
  6. Analyzer普通用户登录不了[从网络访问此计算机]
  7. javascript代码
  8. 微信公众号开发系列教程一(调试环境部署)
  9. 二等水准数据平差_自编单次二等水准平差计算表
  10. System Center Configuration Manager 文档
  11. 编码转换的php小脚本,php编码转换小例子
  12. Python复杂对象转JSON
  13. 解决linux共享文件夹丢失的问题
  14. Onlyoffice不打开文档的情况下下载正在编辑的文档
  15. 【经典游戏系列】回忆杀?扒一扒那些年我们玩过的打地鼠小游戏。
  16. 停止无效学习,4种高效学习方法,快速提升自己
  17. vue 总结一项目建立及文件夹结构配置
  18. 福大软工·第一次作业-准备
  19. Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)
  20. 3D游戏引擎系统源码C++本科毕业设计,C++ 3D引擎源码,渲染系统使用的OpenGL 及 OpenGL ES

热门文章

  1. Python:Flask-ShortUrl短连接转换器
  2. 用Arduino制作一个功能最基础的辉光钟
  3. 稳定裕度通过Bode图求解方法
  4. 无法启动此程序,因为dll丢失的解决方法分享
  5. CC2530/Zigbee协议栈外部中断配置详解
  6. 关于云模型(Cloud Model)
  7. 【C】编程输出如下图案。正三角形
  8. EasyPoi通过模板生成Excel文件
  9. 关于win10系统还原报错的解决方案
  10. python编辑游戏脚本_用PYTHON做一个简单的游戏脚本(基础,详细)