下面的命令加上括號的是新版本的命令,去掉括號是老版本的命令,
在任何命令后加:--help,就會提示處這些命令的具體用法與引數,
| docker命令 | 命令解釋說明 |
|---|---|
| docker search | search the docker hub for images |
| docker (image) pull | pull an images or a repository from a registry |
| docker images/docker image ls | list images |
| docker create | create a new container |
| docker (container) start | start one or more stopped contrainers |
| docker (container) run | run a command in a new container |
| docker attach | attach to a running container |
| docker ps/docker container ls | list contrains |
| docker (container) logs | fetch tho logs of a container |
| docker restart | restart a container |
| docker (container) stop | stop one or more running containers |
| docker kill | kill one or more running containers |
| docker (image) rm | remove one or more image |
| docker network ls | 查看docker使用的網卡 |
| docker inspect | Return low-level information on Docker objects,查看某個運行中的contain的詳細資訊(里面有IP地址),引數是contain的名字(啟動container時用--name選項指定的名字),也可以是image ID, |
container里面運行的行程一定不能設定成是后臺運行,如果是后臺運行的話,container會立即自動終止,所以nginx container的話,里面啟動nginx的命令一定有【-g】選項,
-
docker search:查找docker,比如查找nginx
在dockerhub網站上搜索nginx,在【TAG】標簽里發現有很多版本,官方nigix docker里面裝的作業系統好像是ubuntu,所以你下載的nginx的docker image里就有一個ubuntu系統,這個系統里好像除了nginx必要的依賴工具外,什么都沒有裝,但是也的40多M,
在眾多版本里有一種的size最小是
xxx-alpine,Alpine也是一個Linux的發行版,特定是體積小,nginx的alpine版本的size是8M左右,由于docker hub里的鏡像都沒有安裝除錯工具,所以,在真正的專案上,一般都是安裝好除錯工具,自己打包,做出一個image,然后上傳的自己的私有docker hub上,
-
docker (image) pull:從docker hub上拉一個alpine系統下的穩定版本的nginx到本地
# docker image pull nginx:stable-alpine -
docker images/docker image ls:查看本地安裝了哪些的docker鏡像
[root@localhost yum.repos.d]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE nginx stable-alpine aaad4724567b 5 weeks ago 21.2MB -
docker image rm:洗掉一個鏡像檔案,
-
docker (container) run:如果本地沒有鏡像檔案,則會自動到倉庫里下載,
$ docker container run --help Usage: docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]OPTIONS
需求1:如果要想和docker container互動,必須指定
-t和-i- -t:指定終端,
- -i:標識可以和docker container互動
需求2:給要啟動的docker contain一個名字,
- --name:起名字,
需求3:讓啟動的container在后臺運行(不占用當前shell行程),
- -d: Run container in background and print container ID
需求4:當容器被停止stop后,想自動洗掉這個容器,達到
docker container ls -a的結果里,沒有這個容器的效果,-
--rm: 自動洗掉容器
例子:啟動nginx
docker container run --name n12 --rm -d nginx:stable-alpine用
sudo docker container ls查看的結果如下,CONTAINER ID IMAGE COMMAND PORTS NAMES 6e63af9a4300 nginx:stable-alpine "nginx -g 'daemon of…" 80/tcp n12- PORTS:nginx使用的埠和網路層協議的種類(這里是使用TCP協議),
-
docker network ls:查看docker使用的網卡,有下面3個就OK,
[root@localhost yum.repos.d]# docker network ls NETWORK ID NAME DRIVER SCOPE d410575399eb bridge bridge local a36f938bc6c6 host host local 55ee9a442ee8 none null local安裝完docker后,使用
ifconfig,可以發現多出個docker0網卡,IP是172.17.0.1,這個網卡的連接方式是【NAT bridge】,既不是【NAT】,也不是【bridge】,container里的行程要想和外網通信的話,要通過別的網卡(enp0s3)才可以,docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 ether 02:42:5b:c3:2c:80 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.65.81 netmask 255.255.255.0 broadcast 192.168.65.255container啟動后,里面作業系統的網段就是172.17的
例子:啟動busybox
# docker container run --name b1111 -it busybox然后在busybox里面運行
ifconfig命令,發現ip地址是172.17.0.2,和網卡docker0在同一個網段,然后再運行:
docker container ls,就可以看到在names的地方是b1111,CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f0f38cba6c5b busybox "sh" 5 minutes ago Up 5 minutes b1111- CONTAINER ID:一個ID
- IMAGE:哪個image
- COMMAN:當前鏡像里運行的是什么行程
-
docker container start:啟動container
Usage: docker container start [OPTIONS] CONTAINER [CONTAINER...] Start one or more stopped containers Options: -a, --attach Attach STDOUT/STDERR and forward signals --checkpoint string Restore from this checkpoint --checkpoint-dir string Use a custom checkpoint storage directory --detach-keys string Override the key sequence for detaching a container -i, --interactive Attach container's STDIN -
docker container stop:停止container
-
docker container rm :洗掉container,引數是container的名字,洗掉后用
docker container ls -a也看不到這個container,如果是stop一個container,那么用docker container ls -a還是可以看到這個container的, -
docker (container) logs:查看container中行程產生的日志內容,比如查看nginx的日志,然后把日志直接輸出到控制臺,
# docker container logs n12 172.17.0.1 - - [30/Nov/2019:08:52:19 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-" -
docker container exec:直接執行container里的命令,
Usage: docker container exec [OPTIONS] CONTAINER COMMAND [ARG...] Run a command in a running container Options: -d, --detach Detached mode: run command in the background --detach-keys string Override the key sequence for detaching a container -e, --env list Set environment variables -i, --interactive Keep STDIN open even if not attached --privileged Give extended privileges to the command -t, --tty Allocate a pseudo-TTY -u, --user string Username or UID (format: <name|uid>[:<group|gid>]) -w, --workdir string Working directory inside the container # docker container exec -it kv1 /bin/sh
docker container狀態轉換圖:

- docker inspect :后面接container id后者image id,查看詳細資訊,比如image啟動后,運行哪個命令,
下面的nginx的cmd和OS
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"Os": "linux",
【daemon off】是讓nginx不作為守護行程運行,要是作為守護行程運行的話,container會自動結束,
c/c++ 學習互助QQ群:877684253

本人微信:xiaoshitou5854
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/103899.html
標籤:其他
上一篇:github設定添加ssh
下一篇:一文解讀JSON (轉)
