Docker基础速成(一)

给亲爱的写的docker基础速成,按照步骤操作,实践出真知,希望有提纲挈领之功效

1.docker简介

    Docker 轻量级容器,如图,类似于一个个集装箱,把复杂或者零散的东西装在一个个箱子里,可以把各种东西放里面分门别类,统一管理,如果需要搬的时候直接搬箱子就好,而且有很多别人的箱子装的正是你需要装的服务,可以直接拿来变成你自己的箱子。

docker切换快照 docker快速上手_User

看完简介你已经知道docker是个什么东西了,可以说:“我知道docker是个啥了”,下面进入基础操作环节

2.docker基础命令操作

(1)docker search  查找镜像命令

 先找个要装的镜像,看看别人装好的集装箱,比如mysql,5.6版本要注意的事情少一些,先找mysql5.6试试看



docker search mysql5.6



docker切换快照 docker快速上手_User_02

  

(2)docker pull  安装镜像命令

找到了很多,安装一个看着喜欢的drunkar/mysql5.6-utf8



docker pull drunkar/mysql5.6-utf8



docker切换快照 docker快速上手_mysql_03

(3)docker images  列出本地镜像命令

下载完成后查看本地镜像,红色箭头指向刚刚安装的镜像



docker images



docker切换快照 docker快速上手_docker切换快照_04

(4)docker run 创建一个新的容器并运行

用这个镜像创建容器

  --name mysql5.6        指定容器名称为mysql5.6

  -p 12006:3306           主机的12006端口映射到容器3306端口,当端口映射的不同时候,注意顺序,前面是主机的后面是容器的

  -e MYSQL_ROOT_PASSWORD=Mysql5.6    mysql的root密码为Mysql5.6

  -v /data/docker/mysql_data:/var/lib/mysql      将容器mysql存放的数据挂载到本机的/data/docker/mysql_data



mkdir -p /data/docker/mysql_data
docker run -it --name mysql5.6 -p 12006:3306 -e MYSQL_ROOT_PASSWORD=Mysql5.6 -v /data/docker/mysql_data:/var/lib/mysql -d drunkar/mysql5.6-utf8



如果主机端口被占用会有Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use.这个错误提示

(5)docker ps  列出容器

  docker ps 列出正在运行的容器

  docker ps -a    列出所有的容器

 

docker切换快照 docker快速上手_mysql_05

(6)docker exec -it mysql5.6 mysql   进入容器中的mysql



docker exec -it mysql5.6 mysql
#查看mysql中mysql库的user表
 select User,Host,Password from mysql.user;
#里面root本地免密登录,修改admin用户密码
update mysql.user set Password=password("mysql5.6") where User="admin";
#刷新 flush privileges; 
#退出 quit



#插入忘记mysql的root密码修改
#首先进入容器中docker exec -it mysql5.6 /bin/bash
#修改配置文件vi /etc/mysql/my.cnf
#在[mysqld]下添加一行跳过授权表 skip-grant-tables
#保存退出,重启docker restart mysql5.6
#docker exec -it mysql5.6 mysql
#查看mysql中mysql库的user表 select User,Host,Password from mysql.user;
#发现里面有root用户和admin用户,把密码都修改下
#更改密码
update mysql.user set Password=password("Mysql5.6") where Host="127.0.0.1" or Host="localhost";(此版本修改这个有个小问题,这个版本可以不修改)
update mysql.user set Password=password("mysql5.6") where User="admin"; 
#刷新 flush privileges; 
#退出 quit
#删除之前在my.cnf中添加的
skip-grant-tables



防火墙开启端口后,通过外网访问:   mysql -h xxx.xx.xxx.xx -P 12006 -u admin -p

(7)docker start/stop/restart  启动关闭重启容器

docker切换快照 docker快速上手_docker_06

看完基础命令你已经知道docker怎么使用了,可以说:“我会使用docker了”,下面进入好看的环节



#下载WordPress镜像,一个博客平台
docker pull wordpress:latest
#连接数据库创建容器
docker run -it --name wordpress --link mysql5.6:mysql -e WORDPRESS_DB_USER=admin -e WORDPRESS_DB_PASSWORD=mysql5.6 -p 12005:80 -d wordpress



--link  建立容器间的连接,连接各个创建的mysql5.6

-e WORDPRESS_DB_USER=admin    刚刚数据库里面的授权帐号

-e WORDPRESS_DB_PASSWORD=mysql5.6   数据库里面授权帐号的密码

访问http://140.143.xxx.xx:12005 进入界面(因为指定了12005的端口,不能访问可以docker logs wordpress查看日志,没问题的话记得关闭selinux,开启防火墙端口和安全组端口 )

docker切换快照 docker快速上手_mysql_07

docker切换快照 docker快速上手_User_08

安装完成后:

  http://140.143.xxx.xx:12005/wp-login.php  登录后台地址

  http://140.143.xxx.xx:12005  界面如下

docker切换快照 docker快速上手_docker_09

基础教程待续... ...