摘要: 在 Ubuntu 中安装和部署 Docker 实例,并制作一个包含 Mysql 服务的 Docker 镜像。
操作系统:Ubuntu14
安装Docker
su root
apt-get update
apt-get install docker.io
docker.io由Ubuntu维护,docker-engine由Docker维护,不追版本的话,方便起见用docker.io。
下载Ubuntu最新版,查看当前镜像列表
docker pull ubuntu
docker images
载入Ubuntu镜像,进入Docker中的命令行。
docker run -it ubuntu bash
在Docker中安装Mysql
apt-get update
apt-get install mysql-server
exit
退出Docker命令行后,查看正运行、已退出的容器列表,找到刚才安装Mysql的容器(CONTAINER ID),将容器内的变化保存为新命名的镜像文件(docker_mysql)。
docker ps
docker ps -a
docker commit fda057a64ed6 docker_mysql
docker images
将新的镜像文件保存成压缩包tar文件
docker save -o docker_mysql.tar docker_mysql
ls
清理不再需要的容器和镜像文件
docker ps -a
docker rm fda057a64ed6
docker images
docker rmi df3eca73a721
载入tar文件中的Doocker镜像
docker load -i docker_mysql.tar
docker images
在命名容器中(--name)后台启动Docker镜像(-d),映射Docker中的3306端口到客户机的13306端口
docker run -dit -p 13306:3306 --name=d_mysql docker_mysql
进入Docker运行容器的命令行,安装vim,修改Mysql允许远程访问
docker attach d_mysql
apg-get install vim
vi /etc/mysql/mysql.conf.d/mysqld.cnf
# bind-address = 127.0.0.1
service mysql start
mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> quit
service mysql restart
exit
停止和启动容器,启动容器中的Mysql服务,远程连接容器中的Mysql
docker stop d_mysql
docker start d_mysql
docker exec d_mysql service mysql start
mysql --port=13306 -u root -p
1号坑:docker push 的上传速度奇慢无比,总出错,最终放弃。
2号坑:Dockerfile 创建镜像时总出错,很多包的安装指令在bash下正常,放到Dockfile里出错。
© 著作权归作者所有