Docker使用入門

docker images   查看本地鏡像php

docker ps -a   查詢容器html

docker ps -l   查詢最近使用容器mysql

docker rm CONTAINER_ID   刪除容器nginx

docker rmi IMAGE_ID   刪除鏡像golang

docker cp [OPTIONS] SRC_PATH CONTAINER_ID:DEST_PATH   上傳文件/文件夾web

docker start CONTAINER_ID   啓動容器redis

docker stop CONTAINER_ID   退出容器sql

docker kill CONTAINER_ID   強制退出容器docker

docker attach CONTAINER_ID   登陸已啓動容器數據庫

docker commit CONTAINER_ID xxxx/xxxxx[:xx]   保存對容器的修改

docker inspect CONTAINER_ID   查看容器的信息

ctrl+d    退出且關閉容器

ctrl+p,q      退出但不關閉容器

 

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS說明:

  • -a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;

  • -d: 後臺運行容器,並返回容器ID;

  • -i: 以交互模式運行容器,一般與 -t 同時使用;

  • -p: 端口映射,格式爲:主機(宿主)端口:容器端口

  • -t: 爲容器從新分配一個僞輸入終端,一般與 -i 同時使用;

  • --name="nginx-lb": 爲容器指定一個名稱;

  • --dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致;

  • --dns-search example.com: 指定容器DNS搜索域名,默認和宿主一致;

  • -h "mars": 指定容器的hostname;

  • -e username="ritchie": 設置環境變量;

  • --env-file=[]: 從指定文件讀入環境變量;

  • --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行;

  • -m :設置容器使用內存最大值;

  • --net="bridge": 指定容器的網絡鏈接類型,支持 bridge/host/none/container:<name|id> 四種類型;

  • --link=[]: 添加連接到另外一個容器;

  • --expose=[]: 開放一個端口或一組端口;

docker run -it -p xxxx:xxxx xxx/xxx /bin/bash 

 

docker rm 失敗 容器處於dead狀態:

根據docker rm失敗產生的最後一串由字母與數字組成的字符串s,在命令行中輸入grep [s]找到相關進程pid,而後kill [pid]。

最後再次grep [s],若是沒有相關進程顯示,便可以正常docker rm刪除容器。

 

docker run -it -p 8080:8080  docker.io/golang bash 根據golang鏡像產生一個新容器

docker run -it -p 8080:8080 -v /root/golang/go:/go -v /root/golang/code:/code --privileged docker.io/golang bash   把本地目錄映射到容器中

 

容器中的web應用監聽的是容器端口,不一樣容器能夠映射相同的容器端口,可是宿主機監聽端口不能重複。

 

docker配置redis服務:

docker pull redis

docker run -it -p 56379:6379 docker.io/redis /bin/bash

exit

dokcer ps -l

docker exec -d CONTAINER_ID redis-server

 

docker配置mysql服務:

docker run -e MYSQL_ROOT_PASSWORD=123456 -p 53306:3306 -d docker.io/mysql

若是發如今容器中能夠鏈接上數據庫,而Navicat 遠程鏈接docker容器中的mysql出現報錯1251 - Client does not support authentication protocol

解決辦法:https://blog.csdn.net/sinat_38345188/article/details/80838098

 

docker後臺運行go webapi:

docker start webapi1

docker start webapi2

docker exec -d webapi1 bash -c "cd ../code/main && go run *.go"

docker exec -d webapi2 bash -c "cd ../code/main && go run *.go"

 

docker配置nginx服務:

docker run -it -p 80:80 docker.io/nginx bash

cd etc/nginx

vim nginx.conf

在http段加入如下代碼

upstream 192.168.200.3{

  server 192.168.200.3:8081;

  server 192.168.200.3:8082;

}

 

cd conf.d 

在etc/nginx/conf.d中運行vim default.conf

location / {  

   proxy_set_header Host $host;

   proxy_set_header X-Real-IP $remote_addr;

   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

   root /usr/share/nginx/html;

   index index.html index.htm;

   proxy_pass http://192.168.200.3;

}

從新啓動nginx服務便可。

相關文章
相關標籤/搜索