一、常用docker命令
1.查询镜像
docker search
这里以mysql为例↓
2.获取镜像
选好要用1中哪个name的镜像后,就可以拉取了
docker pull 镜像名
3.查看本地镜像
docker image ls
4.创建、运行容器
docker run 镜像名
这会创建一个错误的容器,会在你的进程中(docker ps -a查看),因为有些配置没配置,现在把这个错误的删掉
正确的创建运行mysql镜像(以mysql为例)的方法是
docker run -it --name mysqlx -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql
docker run
命令是 Docker 的核心命令之一,用于在 Docker 容器中运行一个新的应用程序。-it
、--name
、-p
、-e
和 -d
是该命令的参数,它们各自的作用如下:
-
-it
: 这是两个参数的组合,-i
和-t
。-i
表示“交互模式”,让容器的标准输入保持打开。-t
分配一个伪终端或终端,这通常用于使容器中运行的应用程序认为它们与一个真实的终端交互,这样可以使得例如 Bash 这样的 shell 保持前台运行。 -
--name mysqlx
: 这个参数给容器指定一个名称,这里指定的名称是mysqlx
。这意味着您可以使用这个名称来引用容器,而不是使用容器的 ID。 -
-p 3306:3306
: 这个参数将容器内部的端口映射到宿主机的端口。在这里,宿主机的 3306 端口被映射到容器的 3306 端口。这样做的目的是让您能够从宿主机访问容器中运行的 MySQL 服务。 -
-e MYSQL_ROOT_PASSWORD=123
:-e
参数用于设置环境变量。在这个例子中,它设置了MYSQL_ROOT_PASSWORD
环境变量的值为123
。这是 MySQL 容器启动时必需的,因为它设置了 root 用户的密码。 -
-d
: 这个参数意味着“分离模式”,它会让 Docker 容器在后台运行。这样您就可以继续在同一终端中执行其他命令。 -
mysql
: 这是要运行的 Docker 镜像的名称。在这个例子中,它会从 Docker Hub 下载 MySQL 的官方镜像(如果本地没有的话),并运行它。
5.查看进程
docker ps 活着的进程
docker ps -a 查询所有进程
6.查询日志
docker logs 容器名称
7.删除容器
docker rm 容器名称/容器ID
8.停止/运行/重启 正在运行的容器
docker stop/start/restart 容器名
9.进入容器
docker exec
以上面创建的容器(mysqlx)为例:
docker exec -it mysqlx bash
mysql -uroot -p*** (*user是root,password是***)
>docker exec -it mysqlx bash 的解释如下
-
-it
: 这是两个参数的组合,-i
和-t
。-i
表示“交互模式”,让容器的标准输入保持打开。-t
分配一个伪终端或终端,这通常用于使容器中运行的命令或程序认为它们与一个真实的终端交互,这样可以使得例如 Bash 这样的 shell 保持前台运行。 -
mysqlx
: 这是容器的名称。在前面的docker run
命令中,我们使用--name mysqlx
为容器指定了名称。现在我们使用这个名称来引用该容器。 -
bash
: 这是要在容器内执行的命令。在这个例子中,我们想要启动bash
shell,以便在容器内部进行交互操作。
创建spring boot需要的数据库(也可以直接用宿主机的idea连接容器再创建)
这里如果报错就要开启下linux的3306端口
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
二、容器挂载
我们此时的mysql服务是依靠mysqlx容器运行的,这就有一个很大的问题:如果容器被删除了,那数据也就没了,丢失数据对程序员来说是非常恐怖的事情,因此我们需要进行挂载
首先退出mysql服务,再退出容器
\q
exit
1.创建环境
然后创建如下文件夹路径
[root@localhost software]# mkdir mysql
[root@localhost software]# cd mysql
[root@localhost mysql]# mkdir 3306
[root@localhost mysql]# cd 3306/
[root@localhost 3306]# mkdir data
[root@localhost 3306]# mkdir conf
[root@localhost 3306]# mkdir mysql-files
然后将数据库配置文件上传到conf文件夹(my.cnf)
2.映射
然后就是重中之重,映射
这里重新创建运行一个新的mysql容器,记得把之前的删了
docker run -it \
--name mysql \
-p 3306:3306 \
--privileged \
-e MYSQL_ROOT_PASSWORD=123 \
--network wn_docker_net \
--ip 172.18.12.2 \
-v /etc/localtime:/etc/localtime \
-v /usr/local/software/mysql/3306/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/software/mysql/3306/data:/var/lib/mysql \
-v /usr/local/software/mysql/3306/mysql-files:/var/lib/mysql-files \
-d mysql
每一行结尾的 \表示换行
3.查看容器详情
docker inspect 容器名称
这样可读性有点差,可以考虑重定向文件
①追加 >>
docker inpspect mysql >> mysql.txt
之后会在目标路径生成一个txt,你可以把它下载到windows再用记事本等工具打开查看
pwd查看当前位置
② 覆盖 >
docker inpspect mysql > nmysql.txt
③管道+过滤: | grep
docker inspect mysql |grep IPA
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAMConfig": null,
"IPAddress": "172.17.0.2",
三、常见命令总结
四、docker配置
1.设置docker的静态ip
docker容器的ip地址在每次启动后启动顺序设置ip地址,为解决ip地址变动的问题,我们有必要设置docker内部ip地址固定。
2.创建自定义网络(network)
docker network create —driver bridge —subnet=自定义网络ip/16 —gateway=网关值 自定义网络名称
①默认docker网络
[root@localhost ~]# docker network ls
②自定义网络后
docker network create —driver bridge —subnet=172.18.12.0/16 —gateway=172.18.1.1 wn_docker_net
五、Dockerfile
1.编辑docker.service
vim /lib/systemd/system/docker.service
打开后不要乱动任何东西!改了哪个地方又找不到的话,这个容器就废了
修改ExecStart的内容:
ExecStart=/usr/bin/dockerd -H fd:// —containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
2.重新加载docker
①重新加载docker的daemon
systemctl daemon-reload
②
重新启动docker
systemctl restart docker.service
上面两步建议不要跳过第一步吧,虽然没试过,但要出错就比较麻烦
3.验证配置
netstat -nplt|grep 2375
4.开放2375端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload
5.下载java镜像
项目中要依赖java,需要下载java的镜像。
下载java版本 :anapsix/alpine-java
六、IDEA配置docker插件
别急着运行,还有配置
七、运行docker服务并访问
游览器访问查看效果:文章来源:https://www.toymoban.com/news/detail-788347.html
文章来源地址https://www.toymoban.com/news/detail-788347.html
到了这里,关于[Dokcer] Dokcer常用命令解析,通过dockerfile运行spring boot项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!