一、docker常用操作
1.docker基本命令
批注:
第9条.若不写版本号,默认使用lastest(最新版本),建议拉取镜像带上版本号
第10条:其中q是当下id队列的意思,比如查看所有的容器的id:docker ps -a -q
docker基本命令 | |
1.查看docker版本 | docker -v |
2.启动docker | systemctl start docker |
3.停止docker | systemctl stop docker |
4.重启docker | systemctl restart docker |
5.查看docker状态 | systemctl status docker |
6.开机启动 | systemctl enable docker |
7.列出本地镜像 | docker images |
8.从网络搜索镜像 | docker search 镜像名 |
9.拉取镜像(centos7) | docker pull centos:7 |
10.删除镜像(tag:版本) | docker rmi 名称:tag |
11.获取所有镜像id | docker images -q |
2.容器基本操作
批注:
第13条: 这个可以组合 比如停止所有容器(`是esc下的键盘符) docker stop `docker ps -a -q`
容器基本操作 | |
1.查看正在运行的容器 | docker ps |
2.查所有容器 | docker ps -a |
3.查最后一次运行的容器 | docker ps -l |
4.查看停止的容器 | docker ps -f status=exited |
5.停止运行的容器 | docker stop mycentos2 |
6.启动已运行过的容器 | docker start mycentos2 |
7.重启 | docker restart 容器名|或容器id |
8.文件拷贝(外部拷贝容器内) | docker cp 需要拷贝的本地文件或目录 容器名称:容器目录 |
9.从容器拷出来 | docker cp 容器名称:容器目录 本地的文件或目录 |
10.查看容器ip | docker inspect mycentos2 |
11.删除容器 | docker rm 容器名/或id |
12.查容器日志 | docker logs 容器名|容器id |
13.查所有容器id | docker ps -a -q |
二、docker创建启动容器
创建容器命令:docker run(创建且运行 create+st)(create)
1.参数说明
参数说明 | |
-i:表示运行容器 | |
-t:分配一个伪终端,交互式 | |
--name:为创建的容器命名 | |
-v:示目录映射关系(前者宿主机目录,后者映射到宿主机上的目录) | |
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行 (这样创建容器后不会自动登<br />录容器,如果只加-i -t两个参数,创建后就会自动进去容器) | |
-p(port):表示端口映射,前者是宿主机端口,后者是容器内的映射端口。 可以使用多个-p做多个端口映射 | |
--restart always:容器会随着docker的启动而启动 |
2.创建交互式容器(不建议使用,退出当前容器则停止)
批注: /bin/bash:表示进入这个容器,即进入centos,mycentos是自己命名的容器名称
创建交互式容器(不建议使用,退出当前容器则停止) | |
docker run -it --name=mycentos centos:7 /bin/bash |
3.创建守护式容器(建议使用,退出容器仍运行)
创建守护式容器(建议使用,退出容器仍运行) | |
docker run -di --name=mycentos2 centos:7 |
三、docker目录挂载
创建容器 添加-v参数 后边为 宿主机目录:容器目录
目录挂载:将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器里所对应的目录。
因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数--privileged=true来解决挂载的目录没有权限的问题。
创建容器 并挂载宿主机目录 到容器中的目录下: | |
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7 |
共享的是多级的目录,可能会出现权限不足 | |
docker run -di --privileged=true -v /root/test:/usr/local/test --name=mycentos4 centos:7 |
四、docker常用部署
1.mysql部署
批注
第2条: 其中-p 就是映射端口,把33306(容器外部宿主机端口)和mysql的3306端口映射(33306自己命名,失败可能是端口冲突),-e 代表给容器添加环境变量,123456为自定义密码
MySQL部署 | |||
1. 拉取镜像 | docker pull mysql:5.7 | ||
2. 创建mysql容器 | docker run -di --name=mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD =123456 mysql:5.7 | ||
3. 进入容器 | docker exec -it mysql /bin/bash | ||
4. 登陆mysql | mysql -uroot -p123456 | ||
5. 授权允许远程登录 | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; |
2.tomcat部署
tomcat部署 | |||
1. 拉取tomcat镜像 | docker pull tomcat:7-jre8 | ||
2. 创建tomcat容器 | docker run -di --name=pinyougou_tomcat -p 9100:8080 tomcat:7-jre8 | ||
3. 测试tomcat | 浏览器地址栏输入:http://ip地址:9100 |
3.nginx部署
Nginx部署 | |||
1. 拉取Nginx镜像 | docker pull nginx | ||
2. 创建Nginx容器 | docker run -di --name=pinyougou_nginx -p 80:80 nginx | ||
3. 测试Nginx | 浏览器地址栏输入:http://ip地址 |
4.redis部署
批注
第3条:本地安装一个redis的客户端 连接即可, 在redis的目录下先打开cmd命令窗口
Redis部署 | |||
1. 拉取Redis镜像 | docker pull redis | ||
2. 创建Redis容器 | docker run -di --name=pinyougou_redis -p 6379:6379 redis | ||
3. 客户端测试() | redis-cli.exe -h 192.168.137.133 -p 16379 |
五、备份与迁移
批注
第1条:nginx是容器名称,mynginx是新的镜像名称(自定义名称)。此镜像的内容就是你当前容器的内容,接下来你可以用此镜像再次运行新的容器
第2条:-o 输出到的文件。执行后,运行ls命令即可看到打成的tar包.
备份迁移、springboot微服务部署建议使用dockerfile(自行学习) | |||
1.容器保存为镜像 | docker commit nginx mynginx(docker commit 容器名称 自定义镜像名称:Tag) | ||
2.镜像备份 | docker save -o mynginx.tar mynginx:Tag(docker save -o 要保存的文件名.tar 镜像名称:版本|镜像id) | ||
3.镜像恢复与迁移 | docker load -i mynginx.tar(-i表示输入的文件,即加载此镜像) |