Docker超详细的入门学习通俗易懂(第二讲)

续接上一讲
进入当前正在运行的容器

# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置

#命令 
docker exec -it 容器id /bin/bash(bashShell)

#测试
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# docker exec -it  2c55ec795d59  /bin/bash 
[root@2c55ec795d59 /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@2c55ec795d59 /]# ps -ef
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 05:33 pts/0    00:00:00 /bin/bash
root          36       0  0 05:39 pts/1    00:00:00 /bin/bash
root          52      36  0 05:39 pts/1    00:00:00 ps -ef

#方式二
docker attach 容器id
#测试
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# docker attach 2c55ec795d59
[root@2c55ec795d59 /]# 
正在执行当前的代码

#docker exec #进入容器开启一个新的终端,可以直接操作(推荐)
#docker attach #进入容器正在执行的终端,不会启动新的进程

从容器内拷贝文件到主机上

docker cp 容器id:容器内路径  目的的主机路径

小结


Docker超详细的入门学习通俗易懂(第二讲)_第1张图片
Docker超详细的入门学习通俗易懂(第二讲)_第2张图片

Docker超详细的入门学习通俗易懂(第二讲)_第3张图片

上面这些都是最常用的

作业练习


Docker 安装nginx

#1.搜索镜像 先去Docker Hub 中找nginx
#2.下载镜像  docker pull ngnix
#3.运行测试
# -d 后台运行
#--name 给容器命名
#-p 宿主机端口:容器内部端口
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# docker run -d --name nginx01 -p 8000:80 nginx
27a490788c4a26735d9224a7b5d5127e5f651e8ba282b72eb33487754d9192de
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# ps
    PID TTY          TIME CMD
2017505 pts/0    00:00:00 bash
2058051 pts/0    00:00:00 bash
2059355 pts/0    00:00:00 ps
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                   NAMES
27a490788c4a   nginx     "/docker-entrypoint.…"   16 seconds ago   Up 15 seconds   0.0.0.0:8000->80/tcp, :::8000->80/tcp   nginx01
2c55ec795d59   centos    "/bin/bash"              7 hours ago      Up 7 hours                                              pedantic_clarke
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# curl localhost:8000

端口暴露的概念
Docker超详细的入门学习通俗易懂(第二讲)_第4张图片

Docker 安装 tomcat

#官方使用
docker run  -it --rm tomcat:9.0
#我们之前的启动都是后台,停止了容器之后,容器还是可以查到 docker run --rm 一般用来测试,用完就删

#(推荐)就是先下载
docker pull tomcat
# 然后运行
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# docker run -d -p 8000:8080 --name tomcat01 tomcat
#测试访问没有问题(但是显示不出来)
#进入容器
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# docker exec -it tomcat01 /bin/bash
#发现问题 linux 命令少了 然后没有webapps ,阿里云的原因,默认是最小的镜像 ,所有不必要的都要删除。
#查看一下映射端口是否被占用
lsof -i:端口号
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# lsof -i:8080
COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
jsvc    453415  www   52u  IPv6 1423880      0t0  TCP *:webcache (LISTEN)

部署es+kibana

#es  暴露的端口很多!
#es  十分占内存
#es  里面的数据一般要放到安全目录
# --net somenetwork 网络配置
#下载启动
$ docker run -d --name elasticsearch (--net somenetwork) -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag
#下完直接裂开了  我们可以用docker stats 查看cpu状态
我是直接卡死了,可以直接重启(但是不建议)
#然后如果情况好转了,就可以测试一下是否有用,测试完赶紧关掉,去增加内存的限制(修改配置文件)
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# curl localhost:9200
{
  "name" : "6a18b0f0e393",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "D3hWpIncTbGAkdZXqjV6GA",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
 
#-e  环境配置修改 限制运行内存
$ docker run -d --name elasticsearch05 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2

Docker超详细的入门学习通俗易懂(第二讲)_第5张图片

#一样是可以访问的
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# curl localhost:9200
{
  "name" : "d1c359c6dd99",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "nDZf3MIxQhqejEqOwZRQ2Q",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

可视化


portainer

什么是portainer?

docker 图形化界面管理工具!提供一个后台面板供我们操作!

#下载使用
docker run -d -p 8088:9000 \ --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
#然后访问外网的地址
会显示下面这个图片

Docker超详细的入门学习通俗易懂(第二讲)_第6张图片

Docker超详细的入门学习通俗易懂(第二讲)_第7张图片

可视化面板,可以搞来玩玩

你可能感兴趣的:(docker,linux,tomcat,nginx,容器)