03-安装docker及使用docker安装其他软件(手动挂载数据卷)

中秋明月,豪门有,贫家也有,极慰人心

Linux安装docker

可以参考官方的安装文档

centos安装docker:

//docs.docker.com/engine/install/centos/

# 1. 卸载之前的docker
sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine
                 
# 2.需要的安装包
yum install -y yum-utils

# 3.设置镜像的仓库
# 推荐使用国内的
yum-config-manager \
  --add-repo \
  //mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引
yum makecache

# 4.安装docker相关的 docker-ce 社区版 而ee是企业版
yum install docker-ce docker-ce-cli containerd.io

# 5、启动docker
docker systemctl start docker

# 6. 使用docker version查看是否按照成功
docker version

ubuntu安装docker:

//docs.docker.com/engine/install/ubuntu/

其中又一个地方需要注意,就是将镜像仓库从国外的换成国内的镜像仓库,如阿里云。

# 移除以前的docker
sudo apt-get remove docker docker-engine docker.io containerd runc

# 配置镜像仓库
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && curl -fsSL //download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo add-apt-repository "deb [arch=amd64] //mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && sudo apt-get update && sudo apt-get install -y docker-ce

# 配置镜像加速器
sudo mkdir -p /etc/docker && sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["//epsax6ut.mirror.aliyuncs.com"],
"log-driver":"json-file",
"log-opts": {"max-size":"10m", "max-file":"3"}
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker -v # 查看版本

 

docker常用

docker查看下载的镜像

docker images

docker启动容器

  1. 基于镜像新建容器并启动
docker run IMAGE:TAG

- INAGE:镜像名称
- TAG:镜像版本号

注意:一般不使用这种方式来加载镜像容器,最好是手动进行镜像目录与配置文件的挂载。参考下文的docker安装常用软件。

  1. 将处于停止状态的容器重新启动
docker container start [container ID or NAMES]

docker容器重新启动

不管容器是否在运行

docker restart [container ID or NAMES]

docker查看容器

查看正在运行中的容器

docker ps

查看所有容器(包括运行中的、已经停止的)

docker ps -a

字段说明

  • CONTAINER ID : 容器 ID;

  • IMAGE : 创建容器时使用的镜像;

  • COMMAND : 容器最后运行的命令;

  • CREATED : 容器创建时间;

  • STATUS : 容器状态;

  • PORTS : 端口信息;

  • NAMES : 容器名:和容器 ID 一样,可以标识容器的唯一性,同一台宿主机上不允许有同名容器存在,否则会冲突;

docker容器交互

exec(推荐)

docker exec -it [container ID or NAMES]

attach

docker attach [container ID or NAMES]

两者都是使用exit退出容器内部,区别在于,后者退出会导致容器停止运行。

docker停止容器

stop

docker container stop [container ID or NAMES]

docker删除容器

rm

docker container rm [container ID or NAMES]

prune 删除所有已经停止的容器

docker container prune

 

docker安装常用软件(手动挂载数据卷)

docker镜像仓库地址:

//hub.docker.com/_/mongo?tab=tags&page=1

可以通过这个查看需要下载的镜像版本

docker安装MySQL

安装mysql5.7

# 拉取镜像
docker pull mysql:5.7

# 运行容器
sudo docker run -p 3306:3306 --name mysql \
-v /home/docker/mysql/log:/var/log/mysql \
-v /home/docker/mysql/data:/var/lib/mysql \
-v /home/docker/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=admin-123456 \
-d mysql:5.7
# 参数说明 -p 3312:3306 将容器的3306端口映射到主机的3312端口
# -v 宿主机文件目录:容器内目录  将容器内文件挂载到宿主机上
# -e MYSQL_ROOT_PASSWORD=root 设置mysql密码为admin-123456
# -d 后台启动
# --name 给启动容器起名字

# 使用docker ps 查看启动的容器

修改mysql配置文件

# 进入配置文件挂载的目录下
cd /home/docker/mysql/conf

# 编辑配置文件my.cnf
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 mysql

docker安装redis

安装redis

# 1、创建配置文件
mkdir -p /home/docker/redis/conf
mkdir -p /home/docker/redis/data
touch /mydata/redis/conf/redis.conf

# 2、下载镜像
docker pull redis:latest

# 3、启动容器
# 云服务器一定要修改端口或配置密码,否则会被拉去挖矿
docker run -p 6379:6379 --name redis \
-v /home/docker/redis/data:/data  \
-v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

# 4、直接进入redis客户端
docker exec -it redis redis-cli

修改redis配置文件

vim /home/docker/redis/conf/redis.conf

# 插入下面内容
appendonly yes    # 支持持久化
requirepass xxxxxx # 配置redis密码
# 注意:后面的注释去掉,否则容器运行不起来

# 保存
docker restart redis

# 进入redis客户端
docker exec -it redis redis-cli
auth xxxxxx

docker安装monogoDB

mkdir -p /home/docker/mongo/data
mkdir -p /home/docker/mongo/conf
mkdir -p /home/docker/mongo/logs

docker pull mongo:latest

docker run -d --name mongo -p 27017:27017 \
-v /home/docker/mongo/conf:/etc/mongo \
-v /home/docker/mongo/data:/data/db \
-v /home/docker/mongo/logs:/var/log/mongodb mongo --auth 

$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
>  db.createUser({user:'admin',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'},"readWriteAnyDatabase"]})
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')

设置容器自启动

docker update [container ID or NAMES] --restart=always