下面的命令加上括號的是新版本的命令,去掉括號是老版本的命令。nginx
在任何命令後加:--help
,就會提示處這些命令的具體用法與參數。c++
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選項指定的名字),注意不是ID。 |
docker search:查找docker,好比查找nginxdocker
在dockerhub網站上搜索nginx,在【TAG】標籤裏發現有不少版本。官方nigix docker裏面裝的操做系統好像是ubuntu,因此你下載的nginx的docker image裏就有一個ubuntu系統,這個系統裏好像除了nginx必要的依賴工具外,什麼都沒有裝,可是也的40多M。shell
在衆多版本里有一種的size最小是xxx-alpine
,Alpine也是一個Linux的發行版,特定是體積小,nginx的alpine版本的size是8M左右。ubuntu
因爲docker hub裏的鏡像都沒有安裝調試工具,因此,在真正的項目上,通常都是安裝好調試工具,本身打包,作出一個image,而後上傳的本身的私有docker hub上。微信
docker (image) pull:從docker hub上拉一個alpine系統下的穩定版本的nginx到本地網絡
# docker image pull nginx:stable-alpine
docker images/docker image ls:查看本地安裝了哪些的docker鏡像curl
[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:刪除一個鏡像文件。tcp
docker (container) run:若是本地沒有鏡像文件,則會自動到倉庫裏下載。ide
$ docker container run --help Usage: docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
需求1:若是要想和docker container交互,必須指定-t
和-i
需求2:給要啓動的docker contain一個名字。
需求3:讓啓動的container在後臺運行(不佔用當前shell進程)。
-d: Run container in background and print container ID
例子:啓動nginx
docker container run --name n12 -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
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.255
container啓動後,裏面操做系統的網段就是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
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