亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Windows/Mac系統(tǒng)Docker方式安裝Mysql(包含utf8)

 更新時間:2021年11月18日 10:17:06   作者:Yore Yuen  
本文主要介紹了Windows/Mac系統(tǒng)Docker方式安裝Mysql(包含utf8),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

一、Mac系統(tǒng)下Docker安裝

訪問docker官網(wǎng):https://www.docker.com/get-started 下載Mac版,下載時需要我們登陸Docker賬號,因此我們需要先注冊一個Docker賬號,這個賬號在后面啟動應(yīng)用的時候也可以用于登陸。

登陸Docker賬號下載,下載后是一個Docker.dmg文件(523.1M),直接雙擊安裝,安裝完后,直接點擊圖標(biāo)啟動Docker,如下圖(whaly應(yīng)是個調(diào)皮的鯨魚)。

下一步完畢之后,就可以在上面見到這個圖標(biāo),集裝箱不跳動的時候就是啟動完成。

為了更快速的拉取鏡像,可以配置為國內(nèi)的鏡像源。點擊圖標(biāo),選中 Preferences --> Daemon,在Registry mirrors填入國內(nèi)的Docker容器代理地址,這里推薦阿里云的,也可以用網(wǎng)易云的,這里演示這么獲取自己的專屬阿里云的容器鏡像服務(wù)。

訪問阿里云官網(wǎng)https://www.aliyun.com/登陸賬號,進(jìn)入管理控制臺 --> 產(chǎn)品與服務(wù) --> 彈性計算 --> 容器鏡像服務(wù) --> 鏡像加速器,復(fù)制自己的專屬加速器地址到Registry mirrors,重啟Docker。

二、Win 10系統(tǒng)下Docker安裝

訪問docker官網(wǎng):https://www.docker.com,如果有Docker賬號的最好先登錄賬號,單擊頁面右上角的 ,接下來單擊頁面的(如果前面沒有登錄賬號的這里會彈出登錄頁面),在彈出的頁面單擊Get start with Docker Desktop開始下載

記得中間選擇 下載Window版本,這里可能下載比較慢,如果下載比較慢可以到 http://get.daocloud.io/#install-docker-for-mac-windows 下載

這里Win 10 系統(tǒng)即可開啟 Hyper-V,然后確定重啟

啟用或關(guān)閉Windows功能

但如果開啟Hyper-V后,VMware Workstation再啟啟動鏡像時會提示如下錯誤,且無法啟動。如果想正常使用可以將此選項取消,然后為保險再在PowerShell(開始 -> 右鍵 -> Windows PowerShell 管理員)執(zhí)行一次 bcdedit /set hypervisorlaunchtype off 。重啟系統(tǒng)才能正常使用VMware Workstation。

bcdedit /set hypervisorlaunchtype off

最后就是雙擊下載的 Docker for Windows Installer.exe 進(jìn)行安裝。

安裝完畢后會提示重啟系統(tǒng),會在系統(tǒng)任務(wù)欄出現(xiàn)Docker的小圖標(biāo),可以根據(jù)提示在PowerShell(Shift + 右鍵 ,進(jìn)行選擇)輸入 :

docker info
docker version
docker ps
docker images
docker run hello-world

三、安裝Mysql

同樣可以在阿里云控制臺鏡像搜索中搜索官方進(jìn)行mysql

選擇第一個,里面有很詳細(xì)的安裝說明,也可以看到支持的版本(標(biāo)簽)有8.0.12,我們這次就安裝這個版本,

安裝之前推薦看下文檔中的“Where to Store Data”部分的說明,方便我們理解在Docker中安裝Mysql時為什么默認(rèn)是將數(shù)據(jù)庫數(shù)據(jù)映射到自己系統(tǒng)本地文件。

安裝的方式有多中,這里直接使用如下的一條命令自動安裝,

docker run --restart=always --name mysql8.0 -p 3306:3306 -v ~/soft/mysql/datadir:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=**** -d mysql:8.0.12 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

參數(shù)解釋:更詳細(xì)的參數(shù)說明可查看官網(wǎng)對 docker run 的描述(docker run Description

--restart=always 設(shè)置啟動Docker后自動運行容器
--name 設(shè)置此容器的名字
-p 3306:3306 前面是暴露出去的端口,后面是容器內(nèi)部的服務(wù)端口
-v 本地目錄:容器路徑 最好指定這個參數(shù),明確將容器的掛載點映射到本地文件夾,這個文件夾中會保存容器的數(shù)據(jù),其中包括 mysql 數(shù)據(jù)的數(shù)據(jù)
-e MYSQL_ROOT_PASSWORD 設(shè)置root用戶的密碼
-d mysql:tag 指定安裝mysql的版本,tag可以選擇官方文檔提供的可選的版本

查看mysql容器信息

$ docker ps

使用工具(Navicat)連接

連接成功,查看版本,也是我們剛安裝的8.0.12的版本。

【說明】 這里需要注意一點的是,官方提供的 MySQL 的 Dockerfile 使用的是 debian 系統(tǒng),默認(rèn)沒有對語言及 utf8 字符集的支持,如下圖:

如果不使用 docker 中的 mysql cli 命令就可以直接使用官方鏡像,這個是完全沒有任何問題的,但如果需要使用 docker 中的 mysql cli 命令,官方的會無法輸入 中文字符,并且顯示的中文是亂碼。此時我們訪問 mysql 官方提供的 Dockerfile.debian (https://github.com/docker-library/mysql),下載其中的 8.0 版本到本地(8.0 版本下的 Dockerfile.debian、docker-entrypoint.sh、config 都需要下載),對 Dockerfile 進(jìn)行如下修改,重點是添加了對 utf8 編碼的支持,并設(shè)置為本地語言環(huán)境為 en_US.utf8(這個在開始時完全夠用)。

#
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
#
# PLEASE DO NOT EDIT IT DIRECTLY.
#
# 系統(tǒng)使用 debian 的 buster-slim 鏡像
FROM debian:buster-slim
 
# 設(shè)置 uft8 環(huán)境
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
    && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8
 
# 添加 mysql 的用戶和組
RUN groupadd -r mysql && useradd -r -g mysql mysql
 
RUN apt-get update && apt-get install -y --no-install-recommends gnupg dirmngr && rm -rf /var/lib/apt/lists/*
 
# 添加 gosu,以便從 root 用戶輕松降級,更詳細(xì)可見 https://github.com/tianon/gosu/releases
ENV GOSU_VERSION 1.12
RUN set -eux; \
	savedAptMark="$(apt-mark showmanual)"; \
	apt-get update; \
	apt-get install -y --no-install-recommends ca-certificates wget; \
	rm -rf /var/lib/apt/lists/*; \
	dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \
	wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \
	wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \
	export GNUPGHOME="$(mktemp -d)"; \
	gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \
	gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
	gpgconf --kill all; \
	rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
	apt-mark auto '.*' > /dev/null; \
	[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; \
	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
	chmod +x /usr/local/bin/gosu; \
	gosu --version; \
	gosu nobody true
 
RUN mkdir /docker-entrypoint-initdb.d
 
RUN apt-get update && apt-get install -y --no-install-recommends \
# for MYSQL_RANDOM_ROOT_PASSWORD
		pwgen \
# for mysql_ssl_rsa_setup
		openssl \
# FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:
# File::Basename
# File::Copy
# Sys::Hostname
# Data::Dumper
		perl \
# install "xz-utils" for .sql.xz docker-entrypoint-initdb.d files
		xz-utils \
	&& rm -rf /var/lib/apt/lists/*
 
RUN set -ex; \
# gpg: key 5072E1F5: public key "MySQL Release Engineering <mysql-build@oss.oracle.com>" imported
	key='A4A9406876FCBD3C456770C88C718D3B5072E1F5'; \
	export GNUPGHOME="$(mktemp -d)"; \
	gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
	gpg --batch --export "$key" > /etc/apt/trusted.gpg.d/mysql.gpg; \
	gpgconf --kill all; \
	rm -rf "$GNUPGHOME"; \
	apt-key list > /dev/null
 
# 添加 mysql 環(huán)境變量
ENV MYSQL_MAJOR 8.0
ENV MYSQL_VERSION 8.0.22-1debian10
 
RUN echo 'deb http://repo.mysql.com/apt/debian/ buster mysql-8.0' > /etc/apt/sources.list.d/mysql.list
 
# the "/var/lib/mysql" stuff here is because the mysql-server postinst doesn't have an explicit way to disable the mysql_install_db codepath besides having a database already "configured" (ie, stuff in /var/lib/mysql/mysql)
# also, we set debconf keys to make APT a little quieter
RUN { \
		echo mysql-community-server mysql-community-server/data-dir select ''; \
		echo mysql-community-server mysql-community-server/root-pass password ''; \
		echo mysql-community-server mysql-community-server/re-root-pass password ''; \
		echo mysql-community-server mysql-community-server/remove-test-db select false; \
	} | debconf-set-selections \
	&& apt-get update \
	&& apt-get install -y \
		mysql-community-client="${MYSQL_VERSION}" \
		mysql-community-server-core="${MYSQL_VERSION}" \
	&& rm -rf /var/lib/apt/lists/* \
	&& rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql /var/run/mysqld \
	&& chown -R mysql:mysql /var/lib/mysql /var/run/mysqld \
# ensure that /var/run/mysqld (used for socket and lock files) is writable regardless of the UID our mysqld instance ends up having at runtime
	&& chmod 1777 /var/run/mysqld /var/lib/mysql
 
# 指定掛載點為 /var/lib/mysql,也可以通過 docker run -v 宿主機(jī)目錄:容器中掛載點
VOLUME /var/lib/mysql
 
# Config files
COPY config/ /etc/mysql/
COPY docker-entrypoint.sh /usr/local/bin/
# backwards compat
RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh
# 作用類似于 CMD,但更加靈活復(fù)雜,使用后會將 CDM 的內(nèi)容作為參數(shù)傳給 ENTRYPOINT 指令
ENTRYPOINT ["docker-entrypoint.sh"]
 
# 聲明運行時暴露的端口(port1 port2 …)。但是在運行時并不會默認(rèn)暴露這個配置的端口,還是需要 run 的時候指定,
EXPOSE 3306 33060
CMD ["mysqld"]
 

執(zhí)行如下命令開始構(gòu)建鏡像,這里通過 -f 參數(shù)指定 Dockerfile 文件為 Dockerfile.debian,如果使用默認(rèn)文件名可以不用指定。

docker build -t mysql-utf8:8.0.22 -f ./Dockerfile.debian .

構(gòu)建成功后可以通過 docker images 查看剛才構(gòu)建出的 mysql 鏡像。

最后我們使用這個鏡像,通過如下命令啟動一個容器

docker run --name mysql8.0 -p 33307:3306 -v /u01/docker-mysql/datadir:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root用戶密碼 -d mysql-utf8:8.0.22 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 

此時進(jìn)入容器后,發(fā)現(xiàn)已經(jīng)支持了 utf8

如果是直接在linux系統(tǒng)下安裝mysql5.X或者8.X版本可參考我的另一篇博客Centos7環(huán)境下離線安裝mysql 5.7 / mysql 8.0

參考資料:https://hub.docker.com/r/_/mysql/

到此這篇關(guān)于Windows/Mac系統(tǒng)Docker方式安裝Mysql(包含utf8)的文章就介紹到這了,更多相關(guān)Docker安裝Mysql內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker-compose.yml參數(shù)的用法(配置文件)

    docker-compose.yml參數(shù)的用法(配置文件)

    這篇文章主要介紹了docker-compose.yml參數(shù)的用法(配置文件),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker安裝官方Redis鏡像并啟用密碼認(rèn)證

    Docker安裝官方Redis鏡像并啟用密碼認(rèn)證

    這篇文章主要介紹了Docker安裝官方Redis鏡像并啟用密碼認(rèn)證,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • docker compose安裝etcd的詳細(xì)過程

    docker compose安裝etcd的詳細(xì)過程

    這篇文章主要介紹了docker compose安裝etcd的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 教你使用Jenkins集成Harbor自動發(fā)布鏡像

    教你使用Jenkins集成Harbor自動發(fā)布鏡像

    這篇文章主要介紹了Jenkins?集成?Harbor?自動發(fā)布鏡像,主要包括Jenkins?腳本式發(fā)布鏡像及Jenkins?插件式發(fā)布鏡像的詳細(xì)過程,本文結(jié)合圖文實例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • docker-compose使用volumes注意項介紹

    docker-compose使用volumes注意項介紹

    這篇文章主要介紹了docker-compose使用volumes注意項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 在Docker中安裝Oracle數(shù)據(jù)庫超詳細(xì)步驟

    在Docker中安裝Oracle數(shù)據(jù)庫超詳細(xì)步驟

    oracle作為全球最強(qiáng)大的關(guān)系型數(shù)據(jù)庫,應(yīng)用在各行各業(yè),下面這篇文章主要給大家介紹了關(guān)于在Docker中安裝Oracle數(shù)據(jù)庫的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • docker-compose的build使用方式

    docker-compose的build使用方式

    這篇文章主要介紹了docker-compose的build使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • docker打包golang應(yīng)用的過程分析

    docker打包golang應(yīng)用的過程分析

    這篇文章主要介紹了docker打包golang應(yīng)用的過程分析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Docker Compose詳細(xì)介紹

    Docker Compose詳細(xì)介紹

    Docker Compose是一個用于定義和運行多個Docker容器的工具。它可以讓用戶輕松地定義和管理多個容器的配置,并且可以通過簡單的命令來啟動、停止和重啟這些容器。在本文中,我們將詳細(xì)介紹Docker Compose的使用和功能
    2023-04-04
  • docker目錄和本地目錄互通的實現(xiàn)

    docker目錄和本地目錄互通的實現(xiàn)

    本文介紹了如何實現(xiàn)Docker目錄和本地目錄互通,通過這種方式,可以輕松地在Docker容器和本地文件系統(tǒng)之間共享數(shù)據(jù),感興趣的可以了解一下
    2023-08-08

最新評論