Docker2/3---常用命令和应用部署

相关文章
Docker总结1/3—理论篇
Docker总结3/3—备份迁移和仓库

常用命令

1.镜像相关命令

(1)查看镜像

docker images

在这里插入图片描述

镜像内容 含义
REPOSITORY 镜像名称
TAG 镜像标签
IMAGE ID 镜像ID
CREATED 镜像的创建日期(不是获取该镜像的日期)
SIZE 镜像大小

这些镜像都是存储在Docker宿主机的/var/lib/docker目录下

(2)搜索镜像

如果你需要从网络中查找需要的镜像,可以通过以下命令搜索

docker search 镜像名称
内容 含义
NAME 仓库名称
DESCRIPTION 镜像描述
STARS 用户评价,反应一个镜像的受欢迎程度
OFFICIAL 是否官方
AUTOMATED 自动构建,表示该镜像由Docker Hub自动构建流程创建的

(3) 拉取镜像

拉取镜像就是从中央仓库中下载镜像到本地

docker pull 镜像名称

(4)删除镜像

按镜像ID删除镜像

docker rmi 镜像ID

删除所有镜像(删除镜像需要保证,镜像中没有容器,否则需要先删除容器,再删除镜像。)

docker rmi `docker images -q`

2 容器相关命令

(1) 查看容器

查看正在运行的容器

docker ps

查看所有容器

扫描二维码关注公众号,回复: 11688715 查看本文章
docker ps –a

查看最后一次运行的容器

docker ps –l

查看停止的容器

docker ps -f status=exited

(2)创建与启动容器

创建容器常用的参数说明:

创建容器命令:
docker run

命 令 含义
-i 运行容器
-t 容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端
–name 为创建的容器命名
-v 目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上
-d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p 端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

Ⅰ交互式方式创建容器

通过ps命令查看,发现可以看到启动的容器,状态为启动状态

docker run -it --name=容器名称 镜像名称:标签 /bin/bash

退出当前容器

exit

Ⅱ守护式方式创建容器:

docker run -di --name=容器名称 镜像名称:标签

登录守护式容器方式:

docker exec -it 容器名称 (或者容器ID)  /bin/bash
交互式创建容器 守护式创建容器
直接进入容器内部,退出之后,容器停止。 不会容器内部,exec进入容器内部之后,再退出,容器依然运行状态。

(3)停止与启动容器

停止容器:

docker stop 容器名称(或者容器ID)

启动容器:

docker start 容器名称(或者容器ID)

(4)文件拷贝

  • 无论容器是否启动,都可以进行文件拷贝。

如果我们需要将文件拷贝到容器内可以使用cp命令

docker cp 需要拷贝的文件或目录 容器名称:容器目录

也可以将文件从容器内拷贝出来

docker cp 容器名称:容器目录 需要拷贝的文件或目录

(5) 目录挂载

我们可以在创建容器的时候,将宿主机的目录容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。

创建容器 添加-v参数 后边为   宿主机目录:容器目录

例如:

docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7

如果你共享的是多级的目录,可能会出现权限不足的提示。

这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题

(6)查看容器IP地址

我们可以通过以下命令查看容器运行的各种数据

docker inspect 容器名称(容器ID) 

也可以直接执行下面的命令直接输出IP地址

docker inspect --format='{
    
    {.NetworkSettings.IPAddress}}' 容器名称(容器ID)

(7)删除容器

删除指定的容器:

docker rm 容器名称(容器ID)

应用部署

1.MySQL部署

(1)拉取mysql镜像

docker pull centos/mysql-57-centos7

(2)创建容器

docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
参数 含义
–name 自定义的Mysql的名称
-p 端口映射,格式为 宿主机映射端口:容器运行端口
-e 添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登陆密码
  • 输入docker ps 查看映射的端口号
    在这里插入图片描述

(3)远程登录mysql

连接宿主机的IP ,指定端口为33306
本地测试连接:
在这里插入图片描述

2.tomcat部署

(1)拉取镜像

docker pull tomcat:7-jre7

(2)创建容器

创建容器 -p表示地址映射
(端口映射+目录挂载)

docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7

【测试tomcat部署内容】

  • 上传cas.war文件
    在这里插入图片描述

  • 转移cas.war文件到刚才创建的目录
    mv cas.war /usr/local/web

  • 浏览器输入 “服务器IP地址:映射的端口号/cas” 即可看到上传的文件页面:
    在这里插入图片描述

3 Nginx部署

(1)拉取镜像

docker pull nginx

(2)创建Nginx容器

(端口映射)

docker run -di --name=mynginx -p 80:80 nginx

【测试nginx部署的页面】

查看上传的页面的位置(此步骤可以不操作)

[root@localhost ~]# docker exec -it mynginx /bin/bash
root@348ce53d721c:/# dir    
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@348ce53d721c:/# cd etc/nginx
root@348ce53d721c:/etc/nginx# dir
conf.d  fastcgi_params  koi-utf  koi-win  mime.types  modules  nginx.conf  scgi_params  uwsgi_params  win-utf
root@348ce53d721c:/etc/nginx# cd conf.d
root@348ce53d721c:/etc/nginx/conf.d# dir
default.conf
root@348ce53d721c:/etc/nginx/conf.d# cat default.conf   
root@348ce53d721c:/etc/nginx/conf.d# cd /usr/share/nginx/html/
root@348ce53d721c:/usr/share/nginx/html# dir
50x.html index.html
root@348ce53d721c:/usr/share/nginx/html# exit
exit
[root@localhost ~]# dir
anaconda-ks.cfg  html  mynginx.tar dist
  • 上传文件到根目录
sftp> put -r 文件夹路径
  • 移动文件到创建的mynginx容器下
[root@localhost ~]# mv dist html
[root@localhost ~]# docker cp html mynginx:/usr/share/nginx
  • 打开浏览器输入:服务器IP地址,访问上传的页面即可。

在这里插入图片描述

4 Redis部署

(1)拉取镜像

docker pull redis

(2)创建容器

(端口映射)

docker run -di --name=myredis -p 6379:6379 redis

【测试redis部署】

#查看命令redis的id
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
40a25b0c17b5        redis               "docker-entrypoint.s…"   11 minutes ago      Up 11 minutes       0.0.0.0:6379->6379/tcp   myredis

#进入redis容器内部
[root@localhost ~]# docker exec -it 61afc2919bb6 redis-cli

#设置一个值、并将值取出
127.0.0.1:6379> set hello stephanie
OK
127.0.0.1:6379> get hello
"stephanie"

[redis被外网访问]
redis自带安全机制,默认情况下,不能被外网访问。
通过服务端,开发端口,即可实现外网访问redis。

①官网下载redis.conf并修改端口号为外网可访问的端口号。
0.0.0.0为所有网络都可访问,但不安全。

②上传redis文件

sftp> put D:\material\Netease\redis.conf

③目录挂载
(实现文件互传)

docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

④移动文件到redis的目录

mv redis.conf /data/redis/redis.conf

⑤查看redis.conf文件内容,完成目录

[root@localhost redis]# cd /data/redis
[root@localhost redis]# ll
data  redis.conf
[root@localhost redis]# cd redis.conf
[root@localhost redis]# vi redis.conf
[root@localhost redis.conf]# vi redis.conf

在这里插入图片描述

总结

到这里Docker常用命令,和常用软件的部署就结束了。

猜你喜欢

转载自blog.csdn.net/a954553391/article/details/107078380