docker的入门使用

前言:
docker所有命令都需要在命令前面加 docker

系统命令

// 启动docker
systemctl start docker

systemctl status docker

// 开机启动
systemctl enable docker

// 启动镜像,创建容器
run 镜像名

帮助命令

// 版本
version

// docker系统信息,包括镜像和容器的数量
info

// 帮助命令
命令	--help

镜像命令

// 查看所有镜像
images

[root@zhuowang ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    bf756fb1ae65   13 months ago   13.3kB

REPOSITORY	// 镜像的仓库源
TAG		// 镜像的标签
IAMGE ID	// 镜像的id
// 参数
-q	// 只显示镜像的id

// 修改镜像名称
docker tag 镜像id 镜像名:版本

// 搜索镜像(在docker hub)
search mysql
// 参数,过滤
--filter=STARS=3000

// 下载镜像,不指定版本默认最新
pull 镜像名:版本
// 其中会输出一个这个
// docker.io/library/mysql:latest

pull 镜像名 等价	pull docker.io/library/mysql:latest

// 删除镜像
rmi -f 镜像id/名称
rmi -f 镜像id 镜像id 
// 删除全部镜像
rmi -f	$(docker images -aq)

容器命令

说明:我们有了镜像才可以创建容器。

// 下载centos镜像
docker pull centos

// 新建容器并启动
run 参数	image

// 参数
--name="Name"	// 容器名字 tomcat01 tomcat02
-d	// 后台方式运行,并没有运行服务的话会自动关闭容器
-i	// 表示运行容器
-it		// 使用交互方式运行,进入容器查看内容
-p		// 指定容器的端口
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口(常用)
	-p 容器端口
	容器端口
-P		// 随机指定端口
// docker run -itd  --net docker-compose_default --ip 172.18.0.7 kibana
--ip	// 使用固定ip启动容器

// 从容器中退出主机
exit	// 退出并停止容器(实践中这也不退出)
Crtl + p + q	// 退出但不停止容器

// 查看正在运行的容器
ps
ps -f status=exited		// 查询已经退出的容器
// 参数
-a		// 查看所有的容器	包括历史未运行容器
-n=1	// 显示最近创建的一个容器
-q		// 只显示容器的编号
-f		// 过滤
// 删除容器
rm 容器id
rm -f $(docker ps -aq)	// 删除所有容器	-f 强制删除

// 启动和停止容器
start 容器id
restart 容器id
stop 容器id
kill 容器id	// 强制停止

// 查看日志
logs -tf --tail 10 容器id
t	// 显示日志
f	// format 会带时间戳
--tail // 显示10行

docker logs --since 225m 4261ce7f5c14 >>file.txt  // 将最近225分钟的日志写到file.txt文件
// 死循环写入日志
run -d centos /bin/sh -c "while true;do echo kuangshen;sleep 1;done"

// 查看容器中进程信息
top 容器id
// 查看容器的元信息(容器本身的参数信息,ip,挂载信息等)
inspect 容器id

// 进入当前正在运行的容器,容器的名字也可以
exec -it 容器id /bin/bash	// 进入容器后开启一个新的终端,可以在里面操作(常用)
attach 容器id 	// 进入容器正在执行的终端

// 复制不能直接把文件从外部拷贝到容器中,得通过宿主机
// 从容器内拷贝文件到宿主机上,反之,则把命令反过来
cp 容器id:容器内路径 目的主机路径

// 查看cpu的状态
stat 

// 服务器启动自动启动redis
docker update redis --restart=always

ps -f 过滤条件

用等于号连接
在这里插入图片描述

docker 部署应用

docker部署mysql

docker pull mysql:5.7

// -e 配置环境的时候需要加,这儿是配置mysqp密码
docker run -di -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

docker exec -it ca33156ee4e7 /bin/bash

mysql -h localhost -u root -p root

docker部署tomcat

docker pull tomcat:9.0.43

// iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3343
// 遇到这个错误重启docker就行,原因未知
docker run -d -p 3355:8080 --name tomcat01 tomcat

// 此时外部访问报404,
// 原因是阿里云镜像是最简版,webapps是空的,进入容器
cp -r webapps.dist/* webapps

docker部署es

  1. es 暴露的端口很多
  2. es 十分耗内存
  3. es 的数据一般需要放置到安全目录!挂载
// 增加内存限制,否则es占用内存很大,容易导致docker死机
// -e	环境配置修改
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2

curl localhost:9200

安装jdk

  1. 首先去找jdk的tar包,然后解压,官方是收费的
  2. 配置环境变量
vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_171/
export PATH=$JAVA_HOME/bin:$PATH

// 刷新配置文件
source /etc/profile

// 配置成功
java -version

镜像

可视化的镜像管理

  • portainer
// 不重要,看看就行
docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

// 进去之后设置用户密码,然后选择local
  • Rancher(CI/CD持续集成再用这个)

commit镜像

// 提交容器成为一个新的镜像
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

镜像备份/打包/解压

// -o 输出到文件
// 执行完成后就可看见xxx.tar
// 使用镜像id有可能导致解压为镜像的时候名字和版本都是none
// 使用 名字:版本 即可解决
docker save -o xxx.tar 镜像id

// tar包解压为镜像
// -i 输入的文件
docker load -i tar包名

转载自:
https://www.bilibili.com/video/BV1og4y1q7M4?from=search&seid=18423066343999250308

别开窗,我还没见到阳光,天就算不亮。

云边有个小卖部
张嘉佳

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值