docker学习笔记(其二)
接着上次的《docker学习笔记》,今天记录下docker使用的更多细节。包括docker拷贝宿主机文件到容器里面、docker在线镜像查找、mysql的配置和使用等。
首先是比较重要的文件拷贝,因为docker最终还是要部署代码的,需要把文件拷贝到docker容器里面使用,这时候需要用到docker cp 文件或者文件夹 容器名称或者id:/目的路径。比如我的容器叫mytest_docker,需要把本地test文件夹拷贝到容器里的/var/www下面,命令如下:
<code>
docker cp ./test mytest_docker:/var/www
</code>
然后是mysql镜像的使用。数据库我这里强烈建议单独买个数据库服务,国内阿里和腾讯的RDS海外的AWS数据库服务都挺不错的,数据不容易丢失也好扩展,对负载均衡也友好。但是架不住有些情况非要把数据库搞到docker容器里面,这种方式我建议把数据库文件映射到宿主机上或者定时做数据备份避免数据丢失。命令如下:
<code>
#查看hub.docker.com上的mysql docker镜像(连接不上的话可能需要自己想想办法科学上网)
docker search mysql
#最新版本应该是8点多,这里我选的是mysql5.7.34,映射到宿主机的端口是33068(只是为了宿主机好管理容器里的数据库,正式环境也可以不要映射)
docker pull mysql:5.7.34
docker run --name=自定义的容器名字 -e MYSQL_ROOT_PASSWORD=你想设置的数据库密码 -d -p 33068:3306 mysql:5.7.34
#然后是导入数据库文件,不另外设置网关的情况下默认可以通过127.0.0.1:33068访问容器里的数据库
mysql -h 127.0.0.1 -P 33068 -u root -p你设置的数据库密码 < 要导入的数据库文件.sql
#当然也可以把sql文件cp到容器里面,再进到mysql容器里面直接导入
docker exec -it 你的mysql容器名或者id bash
mysql -uroot -p数据库密码 < 数据库文件.sql
</code>
没有特殊配置的话容器里的代码直接可以通过docker内网来访问,查看容器内网地址命令如下:
<code>
#默认应该是172.17.0.x,可以按实际地址来使用
docker inspect 容器名称或者id|grep IPAddress
</code>
更多>>