服務相關命令
#查看docker狀態
systemctl status docker
#啟動docker
systemctl start docker
#重啟
systemctl restart docker
#設定開機自啟動
systemctl enable docker
鏡像相關命令
#查看鏡像 - 本地的
docker images
#搜索鏡像 - 搜索遠程的
docker search redis
#拉取鏡像 - 從遠程下載 docker pull redis:tag tag指定版本號
docker pull redis
#洗掉鏡像 - 洗掉本地的 docker rmi ImageID ImageID指定鏡像ID
docker rmi d0f3d9fe7db7
#洗掉所有鏡像
docker rmi `docker images -q`
注意:洗掉鏡像,正在運行的鏡像,無法洗掉
docker images 查看所有本地主機上的鏡像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 8.5 1b9b129f7bca 6 hours ago 679MB
mysql 5.6 dd3b2a5dcb48 4 months ago 303MB
hello-world latest feb5d9fea6a5 7 months ago 13.3kB
?
#解釋
REPOSITORY 鏡像的倉庫源
TAG 鏡像的標簽
IMAGE ID 鏡像的Id
CREATED 鏡像的創建時間
SIZE 鏡像的檔案大小
?
#可選項
-a --all #列出所有鏡像
-q --quiet #只顯示鏡像的ID
?
docker search搜索
[root@localhost ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 12554 [OK]
mariadb MariaDB Server is a high performing open sou… 4825 [OK]
?
#可選項
-- filter=STARS=3000 #搜索出來的鏡像就是STARS大于3000的
[root@localhost ~]# docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 12554 [OK]
mariadb MariaDB Server is a high performing open sou… 4825 [OK]
容器命令
說明:我們有了鏡像才可以創建容器,linux,下載一個centos鏡像來測驗學士
docker pull centos
新建容器并啟動
docker run[可選引數] image
?
#引數說明
--name="Name" 容器的名字 tomcat01 tomcat02,用來區分容器
-d 后臺方式運行
-it 使用互動方式運行,進入容器查看內容
-p 指定容器的埠 -p 8080:8080
-p ip:主機埠:容器埠
-p 主機埠:容器埠(常用)
-p 容器埠
容器埠
-p 隨機指定埠
?
?
#測驗啟動并進入容器
[root@localhost ~]# docker run -it tomcat /bin/bash
root@fb65bdba861f:/usr/local/tomcat# ls 查詢容器內的tomcat
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work
root@fb65bdba861f:/usr/local/tomcat#
?
列出所有的運行容器
#docker ps 命令
#列出當前正在運行的容器
-a #列出當前正在運行的容器+帶出歷史運行過的容器
-n #最佳創建的容器
-q #只顯示容器的編碼
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb65bdba861f tomcat "/bin/bash" 2 minutes ago Exited (0) 43 seconds ago zen_montalcini
c5c85bca5639 tomcat "catalina.sh run" 13 minutes ago Exited (143) 12 minutes ago tomcat8.5
5616fdb3fddf tomcat:8.5 "catalina.sh run" 3 hours ago Exited (255) 34 minutes ago 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp tomcat
1b800b242e98 hello-world "/hello"
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
?
退出容器
exit #直接容器退出+停止
Ctrl+P+Q #容器不停止退出
?
洗掉容器
docker rm 容器id #洗掉指定容器,不能洗掉正在運行的容器,如果要強制洗掉 rm -f
docker rm -f $(docker ps -aq) #洗掉所有的容器
docker ps -a -q|xargs docker rm #洗掉所有的容器
停止容器的操作
docker start 容器id #啟動容器
docker restart 容器id #重啟容器
docker stop 容器id #停止當前正在運行的容器
docker kill 容器id #強制停止當前容器
常用其他命令
查看日志
docker logs -fft --tail 10 容器 沒有日志
#自己撰寫一段shell腳本
[root@kuangshen /]# docker run -d centos /bin/sh -c "while true;do echo kuangshen;sleep 1; done"
?
# [root@kuangshen /]# docker ps
CONTAINER ID IMAGE
dce7b86171bf centos
#顯示日志
-tf
#顯示日志
--tail number#要顯示日志條數
[root@kuangshen /]# docker logs -tf --tail 10 dce7b86171bf
?
查看容器中行程資訊
#命令 docker top 容器id
[root@localhost ~]# docker top 5ab76fc61511
UID PID PPID C STIME TTY TIME CMD
root 8602 8582 7 15:58 ? 00:00:01 /usr/local/openjdk-11/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
查看鏡像元資料
#命令 docker inspect 容器id
[root@localhost ~]# docker inspect 5ab76fc61511
[
{
"Id": "5ab76fc615110ffb5dfe188ff9258998e8f21eb117192349c32c94050e579095",
"Created": "2022-05-12T07:58:46.314489117Z",
"Path": "catalina.sh",
"Args": [
"run"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 8602,
"ExitCode": 0,
"Error": "",
"StartedAt": "2022-05-12T07:58:46.76464332Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},...........
?
進入當前正在運行的容器
#我們通常容器都是使用后臺方式運行的,需要進入容器,修改一些配置
?
#命令
docker exec -it 容器id /bin/bash
?
#測驗
[root@localhost ~]# docker exec -it 5ab76fc61511 /bin/bash
root@5ab76fc61511:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work
root@5ab76fc61511:/usr/local/tomcat# ps -if
error: unsupported SysV option
?
Usage:
ps [options]
?
Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.
?
For more details see ps(1).
?
#方式二
docker attach 容器id
#測驗
[root@localhost ~]# docker attach 5ab76fc61511
正在執行當前代碼,,,,
?
#docker exec #進入容器后開啟一個新的終端 可以在里面操作(常用)
#docker attach #進入容器正在執行的終端,不會啟動新的行程
?
從容器內容拷貝檔案到主機上
#進入容器內部
[root@localhost ~]# docker exec -it 35a549f10a4b /bin/bash
root@35a549f10a4b:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work
root@35a549f10a4b:/usr/local/tomcat# cd /home
root@35a549f10a4b:/home# ls
#新建一個antler.java檔案
root@35a549f10a4b:/home# touch antler.java
root@35a549f10a4b:/home# ls
antler.java
#退出
root@35a549f10a4b:/home# exit
exit
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
35a549f10a4b tomcat:8.5 "catalina.sh run" About a minute ago Up About a minute 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp tomcat
#命令
docker cp 容器id:/檔案絕對路徑 要賦值的位置
#將容器內檔案拷貝到主機
[root@localhost ~]# docker cp 35a549f10a4b:/home/antler.java /home
[root@localhost ~]# ls /home
antler.java damo java mysql tomcat xiaodengfeng
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/475656.html
標籤:其他
上一篇:檔案管理
