安装docker服务
yum install docker
配置网易镜像加速器
vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
启动docker服务
service docker start
镜像搜索
docker search mysql[:tag]
下载镜像
docker pull mysql[:tag]
列出本地镜像
docker images
显示镜像创建的历史记录信息
docker history imageid
查看当前正在运行的容器
docker ps
查看所有的容器
docker ps -a
查看最后被创建的容器
docker ps -l
启动、停止、重启容器
docker start ContainerID
docker stop ContainerID
docker restart ContainerID
进入容器
docker attach containid
docker exec -it containid sh
退出容器
exit(容器停止并退出)
ctrl+p+q(容器不停止并退出)
容器内文件拷贝到宿主机上
docker cp containid:容器内文件路径 宿主机路径
宿主机文件拷贝到容器内
docker cp 宿主机路径 containid:/www
删除镜像
docker rmi ImageID
删除容器
docker rm [-f] ContainerID
删除所有正在运行的容器
docker rm -f $(docker ps -q)
查看容器日志(带时间戳)
docker logs -ft containid
查看容器内进程
docker top containid
查看容器内部细节
docker inspect containid
容器数据卷,实现容器跟宿主机之间的数据共享
命令添加的方式
docker run -it -v 宿主机绝对路径目录:容器内目录 镜像名
dockerfile的方式(出于可移植和分享的考虑,用-v主机目录:容器目录的方式不能够直接在dockerfile中实现,由于宿主目录是依赖于特定的宿主机的,并不能保证在所有的宿主机上都存在这样的特定目录)
VOLUME["/dataVolumeContainer1","/dataVolumeContainer2","/dataVolumeContainer3"]
提交容器副本使之成为一个新的镜像
docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的目标镜像名:[标签名]
docker commit -m="my tomcat" -a="yj" 容器id csdn/ui:0.1
在当前目录下基于DockerFile文件构建镜像
docker build -f dockerfile -t ImageName .
docker build -f /tmp/dockerfile -t csdn/ui .
docker 镜像导入导出有两种方法:一种是使用 save 和 load 命令
#将指定镜像保存成 tar 归档文件
docker save csdn/ui:latest -o /tmp/ui.tar
#加载镜像
docker load -i /tmp/ui.tar
一种是使用 export 和 import 命令
docker export 98ca36> ubuntu.tar
cat ubuntu.tar | sudo docker import - ubuntu:import
mysql
docker run --name mySql -h mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d ImageID
使用Navicat连接该mysql时,如果出现Client does not support authentication protocol .....异常
docker exec -it mysql(这里的mysql是指你启动时的容器名称) bash
mysql -uroot -p
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
SELECT plugin FROM mysql.user WHERE User = 'root';
就可以在外机通过Navicat访问你docker中的mysql了
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
redis
docker run --name myRedis -p 6379:6379 -d ImageID redis-server --requirepass "123456" --appendonly yes
nginx
docker run --name myNginx -p 80:80 -d ImageID