前言

今天开发应用程序所需要的不仅仅是编写代码。在每个生命周期阶段,工具之间的多种语言,框架,体系结构以及不连续的接口都会带来极大的复杂性。Docker简化并加速了工作流程,同时使开发人员可以自由选择每个项目的工具,应用程序堆栈和部署环境进行创新。

一、基础概念

image: 一个只读模版,可以用来创建container。比如一个包含ubuntu系统的镜像。
container: 从镜像创建的运行容器。可以用docker命令去控制这些container。
repository:仓库。存放镜像。
volume: 保存持久化数据。
network: 连接docker容器服务。

二、安装

1、安装及配置

[root@localhost ~]# yum install docker      #docker安装
[root@localhost ~]# systemctl start docker  #启动docker
[root@localhost /]# docker pull wordpress   #拉取wordpress镜像
[root@localhost /]# docker pull mysql:5.6   #拉取mysql镜像
[root@localhost /]# docker images   #查看是否安装成功
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
docker.io/wordpress   latest              66b89e8b083b        2 weeks ago         609 MB
docker.io/mysql       5.6                 dd3b2a5dcb48        8 months ago        303 MB
[root@localhost /]# docker run -d --name wordpressdb -e MYSQL_ROOT_PASSWORD=password mysql:5.6 
#启动mysql
-d:启动的容器在后台运行
--name:容器名字
-e MYSQL_ROOT_PASSWORD:设置MySQL的root密码,设置的密码为password
:5.6: 指定版本
[root@localhost /]# docker run -d --name wordpress --link wordpressdb:mysql -p 8080:80  wordpress
#启动wordpress
-d:启动的容器在后台运行
--link:将wordpress容器挂载到mysql
-p:指定访问WordPress容器的8080端口
[root@localhost ~]# docker ps  #查看运行中的容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
a2940bfed90b        wordpress           "docker-entrypoint..."   11 seconds ago      Up 7 seconds        0.0.0.0:8080->80/tcp   wordpress
38a0a95a0bc2        mysql:5.6           "docker-entrypoint..."   20 seconds ago      Up 19 seconds       3306/tcp               wordpressdb

2、验证是否安装成功
http://192.168.1.1:8080/wp-admin/setup-config.php #测试虚拟机IP地址192.168.1.1
在这里插入图片描述
在这里插入图片描述
到这里,本次安装就完成。

三、总结

1、本次安装遇到的问题
wordpress和mysql安装完后,进入安装界面,输入数据库名称、密码等,报账号密码错误。检查发现数据库内未建库,wp-config.php未设置账号密码

[root@localhost /]# docker exec -it wordpressdb mysql -uroot -p    #登陆数据库
mysql> show databases;           #查看是否有建库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
mysql> create database wordpress;   #建库
mysql> flush privileges;          #刷新
[root@localhost /]# docker exec -it a2940bfed90b /bin/bash          #登陆wordpress             
[root@a2940bfed90b:/var/www/html# apt-get install vim          #wordpress容器中没安装vim,手动安装
[root@a2940bfed90b:/var/www/html# vim wp-config-docker.php     #查看wp-config-php
define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'wordpress') );         #数据库名称修改成wordpress

/** Database username */
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'root') );       #账号修改成root

/** Database password */
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', 'password') );   #密码修改成password
[root@a2940bfed90b:/var/www/html# exit       #退出
[root@localhost /]# docker restart a2940bfed90b       #重启容器

2、docker其他的配置及卸载

[root@localhost /]# docker images     #查看镜像
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
docker.io/wordpress   latest              66b89e8b083b        2 weeks ago         609 MB
docker.io/mysql       5.6                 dd3b2a5dcb48        8 months ago        303 MB
[root@localhost /]# docker ps    #查看运行中的容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
a2940bfed90b        wordpress           "docker-entrypoint..."   3 hours ago         Up About an hour    0.0.0.0:8080->80/tcp   wordpress
38a0a95a0bc2        mysql:5.6           "docker-entrypoint..."   3 hours ago         Up 2 hours          3306/tcp               wordpressdb

查看容器信息

[root@localhost /]# docker inspect 66b89e8b083b  #查看镜像、实例的元数据
[root@localhost /]# docker top wordpress  #查看容器的进程信息 
[root@localhost /]# docker container ls -aq  #仅查看容器id   
a2940bfed90b
38a0a95a0bc2

查看容器的运行日志

[root@localhost /]# docker logs -f a2940bfed90b   #实时查看
[root@localhost /]# docker logs --tail 20 a2940bfed90b       #仅仅查看日志的最后20行

删除镜像

[root@localhost ~]# docker stop a2940bfed90b  #停止运行该容器
[root@localhost ~]# docker rm a2940bfed90b   #删除该容器
[root@localhost ~]# docker rmi 66b89e8b083b   #删除镜像
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐