自己工作中常用的一些docker命令,總結如下:
docker鏡像加速器修改
/etc/default/docker
/etc/systemd/system/multi-user.target.wants/docker.service
systemctl daemon-reload
service docker restart
docker images -a 顯示所有鏡像信息
docker images -q
docker images --digests --no-trunc
docker info
docker search 鏡像名字
docker full 鏡像名字:版本
docker rmi -f 鏡像名稱:版本 強制刪除鏡像
docker rmi -f 鏡像名稱:版本 鏡像名稱:版本 強制刪除多個鏡像
docker rmi -f ${docker images -qa} 批量刪除
docker run -i imageid或容器名字 以交互式方式運行容器
-t imageid或容器名字 爲容器分配一個僞終端
-d 後臺運行容器,並返回容器id,也及啓動守護式容器
-P 隨機端口映射
-p 指定端口映射,例如:hostPort:containerPort
docker run -it --name mycentos001 centos
docker ps 查看所有正在運行的容器
docker ps -a 顯示當前以及過往歷史正在運行的容器
-l 顯示過往歷史運行過的容器
-q 靜默方式顯示,只顯示容器id
-n 顯示多少個容器
exit 退出容器並關閉
ctrl + p + q 退出但不關閉容器
docker start 容器id或容器名字 啓動容器
docker restart 容器id或容器名字 重啓容器
docker stop 容器id或容器名字 停止容器
docker kill 容器id或容器名字 強制停止容器
docker rm 容器id或容器名字 刪除歷史過往容器
docker rm -f 容器id或容器名字 強制刪除歷史過往容器
docker rm -f ${docker ps -a -q} 或者 docker ps -a -q|xargs docker rm 強制刪除多個容器
docker logs -f -t --tail 4 容器id 查看容器日誌
docker top 容器id 查看容器內正在運行的進程
docker inspect 容器id 查看容器內部細節
docker exec -it 容器id 重新進入容器,在容器中打開新的終端,並且可以啓動新的進程
docker attach 容器id 直接進入容器啓動命令的終端,不會啓動新的容器
docker cp 容器id:容器內路徑 目的主機路徑 從容器中拷貝文件到主機上
docker commit -a="zzyy" -m="tomcat without docs" 1499284c68e2 zhangguowen/tomcat01:1.1 提交自己特製的鏡像
docker run -it -p 8888:8080 zhangguowen/tomcat01:1.1 運行我自己的鏡像
docker run -d -p 8888:8080 tomcat 後臺方式運行
docker run -it -v /宿主機絕對路徑目錄:/容器內目錄 鏡像名 爲容器添加捲,讓主機和容器進行數據共享
docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
docker build -t 你的取的鏡像名字 .
docker run -d -p 80:80 你取的鏡像名字
docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
docker run -p 3306:3306 --name mysql -v /root/data/conf:/etc/mysql/conf.d -v /root/data/logs:/logs -v /root/data/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker exec -it mysql bash
docker run -net=host
grant all privileges on *.* to 'root'@'%';
flush privileges;
docker run -d --name orange \
--link mysql:mysql \
-p 7777:7777 \
-p 8888:8888 \
-p 9999:9999 \
--security-opt seccomp:unconfined \
-e ORANGE_DATABASE=orange \
-e ORANGE_HOST=mysql \
-e ORANGE_PORT=3306 \
-e ORANGE_USER=root \
-e ORANGE_PWD=123456 \
syhily/orange
將鏡像導出:
docker save -o xxxx.tar 鏡像名稱
docker save -o <保存路徑/xxxx.tar> <鏡像名稱:標籤>
將鏡像導入:
docker load -i xxxx.tar
將容器導出:
docker export <容器名> > <保存路徑> 例如:docker export ubuntu18 > ./ubuntu18.tar
將容器導入:
docker import <文件路徑> <容器名> 例如:docker import ./ubuntu18.tar ubuntu18
查看容器日誌:
docker logs 容器id
docker給鏡像打標籤:
要推送一個鏡像到一個私有的registry,而不是公共的docker registry,必須指定一個registry主機名和端口來tag此鏡像
docker tag 鏡像名稱:標籤 192.168.88.101:5000/fedora/httpd:version1.0
推送標籤鏡像到私有倉庫:
docker push 192.168.88.101:5000/fedora/httpd:version1.0