Docker常用命令


標簽(linux): docker

筆者Q:972581034 交流群:605799367。有任何疑問可與筆者或加群交流


關鍵字:

  • 鏡像 images
  • 鏡像名 image_name
  • 鏡像id image_id
  • 容器 container
  • 容器名 con_name
  • 容器id con_id

從公網拉取一個鏡像

docker pull images_name

查看已有的docker鏡像

[root@docker ~]# docker images

查看幫助

docker command --help

查看鏡像列表

docker search nginx

啟動一個容器

#基於hello-world鏡像啟動一個容器,如果本地沒有鏡像會從公網拉取過來,這次做為測試用
docker run hello-world

導出鏡像

docker save -o image_name.tar image_name

刪除鏡像

docker rmi image_name

啟動一個容器

docker run --name=con_name images
--name  #設置容器名

基於創建好的容器自定義docker鏡像

docker commit -m "con_name" con_id image_name

創建一個容器的同時進入這個容器

docker run -it --name=con_name images
-it     #在啟動之后進入這個容器

創建一個容器,放入后台運行,把物理機80端口映射到容器的80端口

docker run -d -p 81:80 image_name
#-p 參數說明
-p hostPort:containerPort
-p ip:hostPort:containerPort
-p ip::containerPort
-p hostPort:containerPort:udp

看容器的端口映射情況

docker port con_id

查看正在運行的容器

docker ps 

查看所有的容器

docker ps -a

動態查看容器日志

docker logs -f con_name

進入容器

docker attach con_name

退出容器

# 方法一
exit
# 方法二
ctrl+p && ctrl+q (一起按,注意順序,退出后容器依然保持啟動狀態)

刪除容器

docker rm  con_name
#強制刪除需要加-f,不加-f不能刪除正在運行中的容器,非常危險,最好不用

查看docker網絡

[root@docker ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
3f91f2097286        bridge              bridge              local
d7675dbd247c        docker_gwbridge     bridge              local
5b36c7e947fd        host                host                local
ims6qkpikafu        ingress             overlay             swarm
85ba10e7ef79        none                null                local

創建一個docker網絡my-docker

docker network create -d bridge \
--subnet=192.168.0.0/24 \
--gateway=192.168.0.100 \
--ip-range=192.168.0.0/24 \
my-docker

利用剛才創建的網絡啟動一個容器

#docker run --network=my-docker --ip=192.168.0.5 -itd --name=con_name -h lb01 image_name
--network   #指定容器網絡
--ip        #設定容器ip地址
-h          #給容器設置主機名

查看容器pid

#方法一:
docker top con_name

#方法二:
docker inspect --format "{{.State.Pid}}" con_name

運行dockerfile並給dockerfile創建的鏡像建立名字

docker build -t mysql:3.6.34 `pwd`

mariadb容器啟動前需先設置密碼方法

docker run -d -P -e MYSQL_ROOT_PASSWORD=password  img_id

docker修改鏡像名

docker tag imageid name:tag

進入docker容器腳本

[root@docker ~]# cat nsenter.sh 
PID=`docker inspect --format "{{.State.Pid}}" $1`
nsenter -t $PID -u --mount -i -n -p

創建一個網絡

docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 my_net2

將容器添加到my_net2網絡 connect

docker network connect my_net2 oldboy1

docker日志模塊

使用filebeat收集日志

{
  "registry-mirrors": ["https://56px195b.mirror.aliyuncs.com"],
  "cluster-store":"consul://192.168.56.13:8500",
  "cluster-advertise": "192.168.56.11:2375",
  "log-driver": "fluentd",
  "log-opts": {
        "fluentd-address":"192.168.56.13:24224",
        "tag":"linux-node1.example.com"
        }
}

Docker最佳實踐-部署LNMP環境
http://www.cnblogs.com/Csir/p/6888066.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號  © 2018-2020 CODEPRJ.COM