谷粒商城笔记一docker

Posted 今夜月色很美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谷粒商城笔记一docker相关的知识,希望对你有一定的参考价值。

docker启动环境

docker安装

# 安装所需的软件包
sudo yum install -y yum-utils \\
  device-mapper-persistent-data \\
  lvm2
# 告知linux使用国内源安装docker
sudo yum-config-manager \\
    --add-repo \\
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 设置开机启动docker
sudo systemctl enable docker

Start Docker

sudo systemctl start docker

配置阿里云镜像加速

在左侧菜单栏找到"产品与服务"->"容器镜像服务",找到"镜像加速器",
选择对应的操作系统,复制配置镜像加速器中的命令在shell中执行,完成镜像加速配置。

常用命令

批量删除镜像

docker rmi -f $(docker images -q)

新建容器并启动

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 参数说明
-d 后台运行,类似nohup
-it 交互方式运行
docker start 容器name:启动上个命令下列出的容器

显示容器列表

docker ps -a显示所有的容器,包括未运行的
docker ps显示运行的所有容器
docker ps --no-trunc显示完整输出,不截断输出

容器退出

exit	# 容器停止并退出
ctrl+p+q	# 容器不停止退出 

删除所有容器

docker rm -f $(docker ps -aq)
docker ps -aq|xargs docker rm -f

查看容器内进程信息

docker top 查看容器进程信息

进入正在运行的容器

docker exec -it 25014cd2d367 /bin/bash
docker attach 25014cd2d367

查看容器日志

docker logs --tail="400" es查看es日志,或者docker logs -f  es,或者docker logs (container id)

查看镜像/容器的元数据

docker inspect mysql:5.6
docker inspect 78dccda07c84

容器与宿主机之间进行文件拷贝


镜像下载/推送命令

下载镜像
docker pull xxx/xx/xxx:1.0
docker save xxx/xx/xxx -o ubuntu.tar
将镜像推送到远程仓库
docker load -i xxx.tar
docker push xxx/xx/xxx:1.1
修改镜像标签
docker tag xxx/xx/xxx:1.0 xxx/xx/xxx:1.1
根据Dockerfile构建镜像
docker build -t ubuntu:05.20 

遇到问题

# 使用docker部署nginx的时候发生了问题
docker run -d nginx --name nginx01 -p 3000:80运行后容器Exited
docker run -d --name nginx01 -p 3000:80 nginx正常
# 查看docker run --help
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
可以发现第一条docker run -d语句是在nginx后面添加添加的options,不符合命令定义的顺序要求

docker安装mysql

docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name=mysql01 mysql:5.7

在主机/home/mysql/conf目录下执行vim my.cnf,输入如下内容并保存

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

执行docker restart mysql01完成mysql配置

配置自动启动

docker update mysql01 --restart=always

docker安装redis

mkdir -p /home/redis/conf
touch /home/redis/conf/redis.conf

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

进入容器的时候直接连接redis:

docker exec -it redis redis-cli

在redis.conf文件中添加AOF持久化配置

appendonly yes

配置自动启动

docker update redis --restart=always

以上是关于谷粒商城笔记一docker的主要内容,如果未能解决你的问题,请参考以下文章

谷粒商城学习笔记-- 环境搭建&项目结构创建

谷粒商城-基础篇- 笔记四(docker安装mysql)

谷粒商城学习——docker安装mysql

谷粒商城学习笔记--项目快速开发与分布式组件

谷粒商城学习笔记——第一期:项目简介

谷粒商城学习笔记——第一期:项目简介