天天看點

Win10下的docker安裝及使用

背景

新公司不像菊廠和快馬,沒有公共的linux伺服器供使用——應該是也有,但目前還是算了,自己在本地安裝一個Docker Desktop,這樣的話,能夠把Windows下的本機資源做虛拟化,然後使用;

Docker Desktop

win10下安裝Docker Desktop

下載下傳連結:

Docker官方下載下傳連結

安裝後不必注冊——除非你想上傳自己的鏡像——主要遇到的大坑就是win10下的虛拟化開關,需要通過Bios設定來打開,而不同的機器下的Bios是完全不同的,基本是在CPU下面的虛拟化選項裡來設定——如果找到選項然後進行設定,是非常快的。

可參考下面的連結(雖然我安裝的時候并沒有參考):

WIN10中DOCKER的安裝與使用

Docker基本使用

這是自己的弱項,之前沒有好好學習過——其實在菊廠的時候簡單用過——這次隻能查着用;

參考連結:

Docker for windows : 安裝linux

拉取鏡像

docker pull hub.c.163.com/library/oraclelinux:latest
           

建立Linux容器

C:\Users\K-Jso>docker images -a
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
hub.c.163.com/library/php           7.1                 6cd3037a948f        6 months ago        371MB
hub.c.163.com/library/oraclelinux   latest              9fe41720f939        7 months ago        229MB
hub.c.163.com/library/redis         4.0.1               d4f259423416        7 months ago        106MB
hub.c.163.com/library/nginx         latest              46102226f2fd        10 months ago       109MB
hub.c.163.com/library/mysql         5.6                 0977f3a915e5        10 months ago       298MB

C:\Users\K-Jso>docker run --name linux -it -d 9fe41720f939 /bin/bash
04d7d2d30543f983fdd329f6f23d235b2229291063211e1a5f514636f26310e3
           

注意

如果想映射本地目錄到容器内,應該采用如下指令:

docker run --name linux -it -v D:\Program\Docker\linux\:/mnt -d 9fe41720f939 /bin/bash
           

進入容器并互動

docker exec -it 04d7d2d30543f983fdd329f6f23d235b2229291063211e1a5f514636f26310e3 /bin/sh
           

或者也可以通過Docker Desktop的按鈕來進入:

Win10下的docker安裝及使用

Linux下安裝Gcc

Win10下的docker安裝及使用

公司内部的安裝方式

在後續的gcc安裝過程中,發現坑太多,調頭換用公司所用的centos鏡像和gcc,過程如下:

拉取:

docker pull jdeathe/centos-ssh:centos-7

運作

docker run -d -p 11001:22 --privileged --ulimit core=-1 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v /D/Program/Docker/linux:/workspace --shm-size=1024m jdeathe/centos-ssh:centos-7 /usr/sbin/init

——關于-p ==> 端口映射

上面的11001:22 =》實體機的11001端口映射到docker下的22端口

更進一步的指令:

docker run --name client -d -p 11002:23 --privileged --ulimit core=-1 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v /D/Program/Docker/linux:/workspace --shm-size=1024m jdeathe/centos-ssh:centos-7 /usr/sbin/init

命名新的環境名稱為client,并且把實體機的11002端口映射到docker下的23端口

可參考連結:

外部通路docker容器(docker run -p/-P 指令)

進入或通過docker desktop來進入centos下

docker exec -it 09de35f53b680e6585d92fec26a99e3ad609d876a50aa4b0ada93316dfc78a72 /usr/sbin/init

docker desktop使用遇到的坑

error during connect: In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect

剛裝的win10啟動window-desktop報錯:

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: error during connect: Post http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.39/containers/create: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

解決方法:

cd “C:\Program Files\Docker\Docker”

./DockerCli.exe -SwitchDaemon

運作這個後可能會造成容器和鏡像都沒了,不要着急,都還在;通過下面的操作來找到即可

image operating system “linux” cannot be used on this platform

簡單來說就是docker預設目前的容器系統是windows,需要修改為linux;

右鍵點選windows下的工作列上的docker desktop,然後switch到linux container

Win10下的docker安裝及使用

win10 docker啟動後檢查版本報錯

Docker.Core.Backend.BackendException:

Error response from daemon: open .\pipe\docker_engine_linux: The system cannot find the file specified.

在win10 指令行提示符執行:

Net stop com.docker.service

Net start com.docker.service

工具的安裝和使用

gcc

sudo yum install centos-release-scl centos-release-scl-rh

sudo yum install -y scl-utils*

sudo yum -y install llvm-toolset-7 devtoolset-8-gcc*

scl enable devtoolset-8 bash

或者在.bashrc中添加

source /opt/rh/devtoolset-8/enable

驗證 gcc:

which gcc(提示沒有which)

gcc -version(ok,g++ --version 也是ok的)

net-tools

輸入ifconfig -a提示沒有發現指令,這時候需要安裝net-tools:

sudo yum install net-tools

安裝過程中詢問是否安裝,輸入 y并回車即可

Win10下的docker安裝及使用

iperf

安裝iperf:

sudo yum install iperf

安裝過程中詢問是否安裝,輸入 y并回車即可

Win10下的docker安裝及使用

iperf的簡單使用

網絡性能測試工具iperf詳細使用圖文教程

TCP測試[iperf預設就是用TCP,如果想測試UDP,需要通過 -u 指定]:

Server側

iperf -s -p 5001 -t 1000 -w 1024

==>-s指定是server,-p指定server的端口(也可以不指定,由iperf配置設定),-t 指明測試時長,-w指定TCP接收buffer的大小,可以簡單了解為一個TCP封包的大小,便于測試

Client側

iperf -c 172.17.0.2 -p 5001 -t 1000

= =>-c指定是client,172.17.0.2是server的ip,-p指定要連接配接的server的端口,-t 指明測試時長

iperf -c 172.17.0.2 -i 1 -b 1m -p 5001 -t 1000

-c:用戶端模式,後接伺服器ip

-p:後接服務端監聽的端口

-i:設定帶寬報告的時間間隔,機關為秒

-t:設定測試的時長,機關為秒

-w:設定tcp視窗大小,一般可以不用設定,預設即可

UDP測試(未親自使用):

Server側

iperf -s -u -p 5003 -t 1000

==>-s指定是server,-u指定是udp模式;-p指定server的端口(也可以不指定,由iperf配置設定),-t 指明測試時長

Client側

iperf -c 172.17.0.2 -u -p 5003 -t 1000

= =>-c指定是client,172.17.0.2是server的ip,-u指定是udp模式;-p指定要連接配接的server的端口,-t 指明測試時長

注意:172.17.0.2作為server ip要在-c之後,放在-u的前面;

繼續閱讀