Docker可以快速创建容器,其容器可以运行在几乎所有操作系统上,这样就让开发环境和生产环境与操作系统性能隔离,实现解耦。
?
1. docker的中文教程
http://www.widuu.com/docker/installation/ubuntu.html
?
2. 在ubuntu 16.04 64 LTS安装docker
?
sudo wget -qO- https://get.docker.com/ | sh
?
3. 验证docker安装正确
?
sudo docker run hello-world
正确运行输出hello world,然后打印多行信息
?
4. 不使用sudo运行docker
??? 第3步运行docker需要sudo权限,按如下操作可以不需要sudo权限:
??? 4.1 创建docker组,并把brian加入到这个组
?
sudo usermod -aG docker myusername
这里,myusername是当前用户名。??? 4.2 然后注销当前用户,重登录
??? 4.3 再用常规命令运行helloworld测试下:
?
docker run hello-world
?
5. 将docker所有设置都根据条款1.的在ubunut安装docker章节进行修改。
6.? docker hub
??? 它是docker的镜像的中心仓库。存储功能docker镜像。docker search 命令在功能上和docker hub相似,但在docker hub上可以看到更多的说明和文档,建议注册docker帐号。
?
7. 用docker创建mysql容器
??? 7.1 mysql的官方docker
???
https://hub.docker.com/r/mysql/mysql-server/
??? 7.2 pull image
?
docker pull mysql/mysql-server:5.7
?
??? 7.3 启动MySQL server
?
docker run --name dck-mysql-server-5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=124tiger -d mysql/mysql-server:5.7
?
??????? 这样,就启动了docker,执行docker ps,可以看到:
??????? CONTAINER ID??????? IMAGE??????????????????? COMMAND????????????????? CREATED???????????? STATUS????????????? PORTS?????????????????????????????? NAMES
978c45e8c21c??????? mysql/mysql-server:5.7?? "/entrypoint.sh mysql"?? 8 seconds ago?????? Up 7 seconds??????? 0.0.0.0:3306->3306/tcp,33060/tcp?? dck-mysql-server-5.7
978c45e8c21c??????? mysql/mysql-server:5.7?? "/entrypoint.sh mysql"?? 8 seconds ago?????? Up 7 seconds??????? 0.0.0.0:3306->3306/tcp,33060/tcp?? dck-mysql-server-5.7
??????? 启动命令将容器的3306端口映射到主机的3306端口,也就是说,如果你登录主机的3306端口,也就是等价于登录docker的mysql 3306端口。容器主机运行docker镜像,做了端口映射,从容器主机的角度而言,它对外就实现了myslq服务,从对外的角度而言,跟它自己安装mysql对外提供服务没有差别。
??? 7.4 登录到mysql命令行交互
?
docker exec -it dck-mysql-5.7 mysql -u root -p
?
??????? 输入密码:124tiger
? ? 7.5 登录到mysql的bash交互
?
docker exec -it dck-mysql-5.7 bash
?
??? 7.6 默认情况下,root@localhost 的mysql帐号被创建,它只能从本地连接mysql。因此不能用root帐号从容器所在的host登录mysql,需要创建新帐号。
??? 7.7 mysql创建新用户
?
create user briantest identified by '14604658';
?
??? 7.8 mysql创建数据库
?
create database briandb;
?
??? 7.9 赋权
?
grant all privileges on briandb.* to briantest identified by '14604658';
?
??? 7.10 登录
??????? 1)可以从容器host登录mysql,形如:
?
mysql -h 172.17.0.2 -u briantest -p
?
??????? 其中,172.17.0.2是mysql镜像的ip地址。
? ? ?? 2)因为容器的3306和主机的3306做了映射,所以你登录主机的3306,也是能链接到容器的mysql,以下几种方式等价:
?
mysql -h 172.17.0.1 -ubriantest -p mysql -h 127.0.0.1 -ubriantest -p mysql -h 192.168.16.57 -u briantest -p mysql -h brianHP -u briantest -p
?
? ? 7. 11 在mysql创建数据表并插入两条简单记录
create table loan_data (name varchar(100),owner varchar(100)); insert into loan_data values ( 'x001','tichen'); insert into loan_data values ( 'x002','yettie');?
8. 在ubunut上使用mysql gui工具
安装:apt-install mysql-workbench
运行:mysql-workbench