Docker启动常用容器命令及配置说明

  • Docker 容器相关命令
  • Docker 启动mysql
  • Docker 启动nginx
  • Docker 启动redis
  • Docker 启动rabbitmq
  • Docker 启动Kafka
  • Docker 启动tomcat
  • Docker 启动jar包
  • Docker 启动PostgreSQL
  • Docker 启动ElasticSearch

Docker 容器相关命令

容器是基于Docker镜像被创建的。

docker run [Options] image运行容器

docker run [Options] image#参数说明
--name="名字"           指定容器名字
-d                     后台方式运行
-it                    使用交互方式运行,进入容器查看内容
-p                     指定容器的端口-p ip:主机端口:容器端口  配置主机端口映射到容器端口-p 主机端口:容器端口(常用)-p 容器端口
-P                     随机指定端口
-e                     环境设置
-v                     容器数据卷挂载

运行并进入容器centos

[root@localhost ~]# docker run -it centos /bin/bash
[root@ce2bbae9f151 /]# ls
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr

进入容器,因为通常我们的容器都是使用后台方式来运行的,有时需要进入容器修改配置

  • docker exec -it 容器id /bin/bash
# docker exec 进入容器后开启一个新的终端,可以在里面操作
docker exec -it 容器id /bin/bash
  • docker attach 容器id
# docker attach 进入容器正在执行的终端
docker attach 容器id

退出容器

exit     # 停止容器并退出(后台方式运行则仅退出)
Ctrl+P+Q  # 不停止容器退出

docker ps 查看运行的容器

# 查看当前正在运行的容器
docker ps -a   # 查看所有容器的运行记录
-n=? # 显示最近创建的n个容器
-q   # 只显示容器的id

docker start 容器id 启动容器

docker start 容器id          # 启动容器
docker restart 容器id        # 重启容器
docker stop 容器id           # 停止当前运行的容器
docker kill 容器id           # 强制停止当前容器

docker logs 容器id查看容器运行日志

docker logs -tf 容器id
docker logs --tail num 容器id  # num为要显示的日志条数

docker top 容器id查看容器中进程信息

docker top 容器id

docker inspect 容器id查看容器的元数据

docker inspect 容器id

Docker 启动mysql

# 1.启动mysql  设置密码、设置挂载数据卷
docker run -d -p 3306:3306 --name mymysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
# 2.远程连接mysql服务,若无权限,进入mysql容器中修改远程连接权限
docker exec -it 36d4806c765a /bin/bash
# 登录mysql
mysql -u root -p
# 修改root 可以通过任何客户端连接
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

修改远程连接权限成功后,可以通过Navicat等mysql客户端连接数据库。

Docker 启动nginx

启动nginx挂载和其他容器挂载有所区别,需要进行额外操作。

docker挂载是run时挂载,所以要先copy配置文件,如果不copy直接挂载启动容器时会从挂载的目录找配置文件,找不到会启动失败。

1. 运行容器

docker run --name nginx -d -p 7777:80 nginx

2. 在宿主机上创建挂载目录

mkdir -p /home/docker/volumes/nginx/conf
mkdir -p /home/docker/volumes/nginx/log

3. 从容器中复制配置文件到挂载目录

docker cp nginx:/etc/nginx/nginx.conf /home/docker/volumes/nginx/conf/nginx.conf     #从容器中复制配置文件
docker cp nginx:/etc/nginx/conf.d /home/docker/volumes/nginx/conf/                   #从容器中复制配置文件夹
docker cp nginx:/usr/share/nginx/html /home/docker/volumes/nginx/               #从容器中复制html文件
docker cp nginx:/var/log/nginx /home/docker/volumes/nginx/log                   #从容器中复制日志文件

4. 删除nginx容器

docker stop nginx
docker rm nginx

5. 使用挂载的方式重新启动nginx

chmod 777 /home/docker/volumes/nginx/conf/nginx.conf
docker run -d -p 7777:80 --name nginx \-v /home/docker/volumes/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \-v /home/docker/volumes/nginx/conf/conf.d:/etc/nginx/conf.d \-v /home/docker/volumes/nginx/html:/usr/share/nginx/html \-v /home/docker/volumes/nginx/log:/var/log/nginx \-e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 \--privileged=true --restart=always nginx

配置说明:

  • -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8是解决nginx中文乱码
  • --privileged=true 给容器内root权限
  • --restart=always 随docker自启动

Docker 启动redis

docker run -p 6379:6379 -d --name myredis \-v /home/docker_volume/redis/data:/data \-v /home/docker_volume/redis/conf/redis.conf:/etc/redis/redis.conf \redis redis-server /etc/redis/redis.conf --appendonly yes
  • redis-server /etc/redis/redis.conf 以配置文件启动redis
  • appendonly yes 开启redis 持久化

进入redis容器

docker exec -it myredis redis-cli

Docker 启动rabbitmq

docker run -it -d -p 5672:5672 -p15672:15672 --hostname my-rabbit --name my-rabbit \-v /home/docker_volume/rabbit/:/var/lib/rabbitmq \-e RABBITMQ_DEFAULT_USER=admin \-e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3-management

启动成功后,浏览器访问 http://ip:15672/,进入rabbitmq管理界面。

Docker 启动Kafka

Kafka需要依赖于Zookeeper

  1. 启动Zookeeper
docker run -it -d --restart=always --name zookeeper -p 2181:2181 wurstmeister/zookeeper
  1. 启动Kafka
docker run -d --restart=always --name kafka -p 9092:9092 \-e KAFKA_BROKER_ID=0 \-e KAFKA_ZOOKEEPER_CONNECT=10.1.7.102:2181/kafka \-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.1.7.102:9092 \-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \-v /etc/localtime:/etc/localtime wurstmeister/kafka

使用Kafka Tool工具连接:

Docker 启动tomcat

docker run -it -d --name mytomcat -p 8090:8080 \-v /home/docker_volume/tomcat/webapps/:/usr/local/tomcat/webapps tomcat

默认镜像中webapps目录为空,先将项目放入webapps目录下,再访问http://ip:8090/

# 进入tomcat容器
docker exec -it mytomcat /bin/bash
# 复制项目到webapps下
cp -rf webapps.dist/* webapps

Docker 启动jar包

jar包想要在docker中运行,需要把jar包制作成镜像文件,docker再运行镜像。Dockerfile详细教程请参考文章:Docker入门与进阶第三部分

1.将jar包上传到Linux中,并编写Dockerfile文件

[root@localhost idea]# ls
demo-0.0.1-SNAPSHOT.jar  Dockerfile

2.Dockerfile文件内容

FROM java:8# 将demo-0.0.1-SNAPSHOT.jar 复制 到容器中并重命名为 app.jar
COPY demo-0.0.1-SNAPSHOT.jar app.jarCMD ["--server.port=8080"]EXPOSE 8080ENTRYPOINT ["java","-jar","app.jar"]

3.docker build构建镜像

[root@localhost idea]# docker build -t springbootdemo:1.0 .
[root@localhost idea]# docker images
REPOSITORY       TAG                IMAGE ID       CREATED          SIZE
springbootdemo   1.0                d9648a49a226   50 seconds ago   661MB

4.运行、测试

[root@localhost idea]# docker run -d -p:8888:8080 --name mydemo springbootdemo:1.0
[root@localhost idea]# curl localhost:8888/hello
hello buckletime![root@localhost idea]#

Docker 启动PostgreSQL

# 拉取镜像
docker pull kartoza/postgis:11.0-2.5
# 运行容器
docker run -d -t --name postgresql -p 5432:5432 \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASS=postgres \
-e ALLOW_IP_RANGE=0.0.0.0/0 \
-v /home/volumes/postgres/data:/var/lib/postgresql \
-v /home/volumes/postgres/temp:/tmp/tmp \
--restart always kartoza/postgis:11.0-2.5
# 安装postgis扩展
# 注意,扩展要加在数据库上,而非模式上
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION postgis_tiger_geocoder;
# 查看扩展是否安装成功
SELECT * FROM pg_extension;

Docker 启动ElasticSearch

# 拉取镜像文件
docker pull elasticsearch# 创建挂载目录
mkdir -p /home/volumes/elasticsearch/config
mkdir -p /home/volumes/elasticsearch/data
mkdir -p /home/volumes/elasticsearch/plugins# 创建并写入elasticsearch.yml配置,注意:http.host: 0.0.0.0
echo "http.host: 0.0.0.0">>/home/volumes/elasticsearch/config/elasticsearch.yml# 文件夹赋权
chmod -R 777 /home/volumes/elasticsearch/# docker启动elasticsearch
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \-e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \-v /home/volumes/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \-v /home/volumes/elasticsearch/data:/usr/share/elasticsearch/data \-v /home/volumes/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-d elasticsearch

参数说明:

-e "discovery.type=single-node":单例模式
-e ES_JAVA_OPTS="-Xms64m -Xmx128m":配置内存大小

查看elasticsearch是否安装成功,浏览器访问:http://localhost:9200

Docker启动常用容器命令及配置说明相关推荐

  1. docker 的启动常用容器命令

    docker 启动rabbitmq docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_ ...

  2. Docker常用容器命令

    常用容器命令 有镜像才能创建容器,这是根本前提(下载一个CentOS镜像演示) docker pull centos 新建并启动容器 格式: docker run [OPTIONS] IMAGE [C ...

  3. docker启动和关闭命令

    docker启动和关闭命令 问题:最近老是需要开关docker容器,但是命令记不住啊,所以只能放在这里方便查找! 红色代表的centos7.x的命令 蓝色代表的centos6.x的命令 docker官 ...

  4. Docker启动tomcat容器部署java web应用详细过程

    1.由于docker拉取tomcat镜像速度非常慢,可以在网易云镜像中心获取镜像地址 docker pull hub.c.163.com/library/tomcat:latest 下载成功后,查看下 ...

  5. Docker的常用管理命令Docker将数据挂载到容器的三种方式

    文章目录 镜像管理命令 容器管理常用命令 docker run常用参数 Docker run的其他参数 docker 创建容器命令 容器资源限制 docker管理容器常用命令 docker将数据挂载到 ...

  6. docker的常用容器镜像命令总结

    一.帮助查看命令 1.docker version #显示docker版本信息 2.docker info #显示docker系统信息 3.docker --help #docker帮助命令 二.镜像 ...

  7. linux redhat、ubuntu系统 docker启动、停止命令

    redhat操作系统: docker启动命令 sudo systemctl start docker 守护进程重启 sudo systemctl daemon-reload 重启docker服务 su ...

  8. Docker镜像与容器命令

    2019独角兽企业重金招聘Python工程师标准>>> Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容 ...

  9. Docker镜像与容器命令 专题

    https://yeasy.gitbooks.io/docker_practice/content/install/mirror.html docker的工作流程图: 至少需要配备三样东西去使用doc ...

最新文章

  1. java中字节码_Java字节码浅析(三)
  2. latex的基本使用
  3. poj1753 Flip Game(枚举Enum+dfs)
  4. Java基础学习总结(139)——Java8 Stream之Stream接口入门简介
  5. 正则表达式处理字符串指定位置插入【高级】
  6. k8s集群部署项目_JAVA项目(推送镜像到云镜像服务器_这里使用阿里云)---K8S_Google工作笔记0061
  7. MikroTik RouterOS使用U盘安装提示FATAL ERROR: no CD-ROM found Press ENTER to reboot的问题解决...
  8. Google Chrome源码剖析【序】
  9. android 距离测量工具,尺子距离测量app
  10. 【文献心得】关于内核在不同芯片平台移植的相关整理
  11. 移动端安全 | Windows11安卓子系统进行APP抓包(踩坑文)
  12. LeetCode/LintCode 题解丨一周爆刷双指针:K个空的位置
  13. C文件编译生产exe可执行文件
  14. Jetson-Xavier-NX刷机+pytorch环境配置+yolov5运行
  15. php stortm 老是闪退,pr加载界面闪退的原因是什么?
  16. OpenCASCADE(OCC)读取 STEP 模型文件并在MFC中显示
  17. 邮箱服务器满了foxmail,foxmail收件箱太满不能发邮件该怎么解决?
  18. Android Accessibility 安全性研究报告
  19. Mac使用技巧:如何解决键盘被锁的问题?
  20. 节流计划-基础知识-2-AIR724UG

热门文章

  1. 百度Apollo无人驾驶车队首直播,萝卜快跑半年订单破30万
  2. 线性代数系列(八)--基变换、左逆、右逆和伪逆
  3. mpg,avi,wmv格式网页播放代码
  4. 德国120个城市的最短旅行商回路
  5. kmeans聚类、模糊kmeans聚类和knn分类
  6. 模型检测原理、方法学习
  7. 基于python的校园网自动登录脚本!
  8. 弹性布局flex属性详解
  9. JQ 操作class+动画篇
  10. zypper命令简介