续接上一讲
进入当前正在运行的容器
# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
#命令
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 安装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 安装 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
#一样是可以访问的
[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
#然后访问外网的地址
会显示下面这个图片
可视化面板,可以搞来玩玩