疆飞
.NET永远年轻,永远热泪盈眶...
展开边栏 收起边栏
Docker启动常用容器命令及配置说明
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 启动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
未完待续...
文章搜索
联系疆飞
- QQ932557101
- emailmail@jiangfei.net
- weibo@疆飞 (@jiangfei1006)
- twitter@疆飞 (@jiangfei1006)
PS:没事不要瞎联系,除非你想请我吃饭...
热门标签更多
Copyright © 2008-. JiangFei.net all rights reserved
苏公网安备32048202001026号苏ICP备18062911号