03-安裝docker及使用docker安裝其他軟體(手動掛載資料卷)

2022-09-07 21:02:14

中秋明月,豪門有,貧家也有,極慰人心

Linux安裝docker

可以參考官方的安裝檔案

centos安裝docker:

https://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 \
  https://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:

https://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 https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo add-apt-repository "deb [arch=amd64] http://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": ["https://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映象倉庫地址:

https://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