docker命令

1、service docker status
查看docker守护进程运行的状态

2、service docker start
启动docker的守护进程

3、service docker stop
关闭docker的守护进程

4、docker info
返回所有容器和镜像的数量、docker使用的执行驱动和存储驱动、以及docker的基本配置信息

5、docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

 docker run -i -t ubuntu /bin/bash

表示创建并启动一个容器,该容器有自己的网络、IP地址;容器中启动了一个ubuntu系统;-i表示设置STDIN,容器运行后接受输入,-t表示容器运行后启动一个tty终端,便于与用户交互,-t和-t都属于OPTIONS;ubuntu是要运行镜像的名字; /bin/bash表示容器启动后运行的初始命令。
运行命令后,会显示“root@410923f574b8:/# ”,表示容器创建并启动成功,容器的ID是410923f574b8,容器中成功运行了ubuntu系统,启动了一个root的bash,然后就可以在这个容器中的ubuntu上执行各种shell命令了;执行exit命令就回到了原宿主ubuntu上了。
执行exit后,容器就停止了,只有在制定的/bin/bash命令处于运行状态的时候,容器才会处于运行状态,一旦退出容器,/bin/bash命令也就停止了,容器也就随之停止了。

docker run --name my_ubuntu -i -t ubuntu /bin/bash 
#用--name指定容器的名字为my_ubuntu,如不指定,系统会默认为容器指定一个名字。如果创建容器相同的名字,会提示失败

docker run --name my_ubuntu -d ubuntu /bin/bash -c "while true; do echo hello lzj; sleep 2; done"
创建守护式容器,没有交互终端;-d 指明创建的容器为守护容器; -c指定?

docker run --restart=always --name my_ubuntu -d ubuntu /bin/bash -c "while true; do echo hello lzj; sleep 2; done"
#--restart=always指定当my_ubuntu退出后,会自动重启。
docker run --restart=on-failure --name my_ubuntu -d ubuntu /bin/bash -c "while true; do echo hello lzj; sleep 2; done"
#--restart=on-failure 指定当容器退出代码非0值的时候,才会自动重启。
docker run --restart=on-failure:10 --name my_ubuntu -d ubuntu /bin/bash -c "while true; do echo hello lzj; sleep 2; done"
#指定最多重启次数为10

docker run -i -t --name docker_name ubuntu:13.06 /bin/bash
#创建一个docker_name容器,运行13.06版本的ubuntu镜像。当仓库中有很多版本的镜像,用此版本指定

docker run -d ubuntu:latest /bin/bash
#让docker容器在后台以守护状态运行,要想查看容器的运行日志,可以用docker logs

6、docker ps [OPTIONS]

	docker ps    #默认显示正在运行的容器
	docker ps -a #列出所有容器,包括正在运行的和已经停止的
	docker ps -l #列出最后一个运行的容器,无论这个容器是正在运行的还是已经停止的
	docker ps -l -q #列出最后一个运行的容器的id,无论这个容器是正在运行的还是已经停止的
	docker ps -n x #显示最后x个容器,不论容器是运行还是已经停止状态的

7、docker start docker_name(容器名)/docker_id
对于已经停止的ring器,可以用start命令启动,或者用docker restart docker_name(容器名)/docker_id

8、docker start docker_name(容器名)/docker_id 与 docker restart docker_name(容器名)/docker_id区别

docker start docker_name(容器名)/docker_id 会丢弃创建容器时指定的各种参数以及初始运行的命令,比如-i 、 -t、 、/bin/bash。
docker restart docker_name(容器名)/docker_id 会保留上述参数,只需要运行 docker attach my_ubuntu,又可以进行交互界面

9、docker stop docker_name(容器名)/docker_id #停止容器

10、docker logs [OPTIONS] CONTAINER

docker logs docker_name(容器名)/docker_id  
打印容器的运行的日志,可以是运行的,也可以是已经停止的容器;尤其是对于守护式容器,可以打印出日志
dcoker logs -f docker_name(容器名)/docker_id  #可以实时监控日志
docker logs --tail 10 docker_name(容器名)/docker_id   #打印出最后10条日志

11、docker top docker_name(容器名)/docker_id #显示docker_name容器中进程

12、docker stats [OPTIONS] [CONTAINER…]

docker status    #可以查看所有守护进程占用的CPU、内存、网络I/O及存储性能I/O的性能和指标

13、在已经启动的容器内部运行进程

docker exec -d docker_name/docker_id touch /home/test.txt
# -d表示后台进程,表示在docker_name容器中运行一个后台进程,用于创建一个test.txt文件,注意该文件存在于容器home目录下,而不是宿主机的home下

docker exec -i -t docker_name/docker_id /bin/bash
#表示创建tty终端,并捕捉STDIN,紧接着在容器内启动一个交互式命令,此时执行exit命令,会退出这个交互式窗口,并不会结束这个容器

14、docker kill [OPTIONS] CONTAINER [CONTAINER…]

docker kill docker_name/docker_id   #杀死指定的容器
docker kill 与 docker stop 区别
docker stop命令会向指定容器发送SIGTERM信号
docker kill命令会向指定容器发送SIGKILL信号

15、docker inspect [OPTIONS] NAME|ID [NAME|ID…]

docker inspect docker_name/docker_id  #可以查看docker_name容器的详细信息,也可以同时查看多个容器的信息

docker inspect 与 docker ps 区别
docker inspect显示指定容器的详细信息;docker ps显示指定容器的简单信息

16、docker rm [OPTIONS] CONTAINER [CONTAINER…]

docker rm docker_name/docker_id   #删除指定容器
docker rm -f docker_name/docker_id 	#强制删除指定容器
docker rm `sudo docker ps -a -q`    #删除现有的全部容器,-a会返回所有的容器,-q只返回容器的ID,而不会返回其它的信息
docker rm $(docker ps -a -q)       #删除所有容器

17、docker image COMMAND

docker image ls  #列出本地所有的镜像
docker image rm -f docker_name/docker_id 	#强制删除指定的镜像

18、docker pull [OPTIONS] NAME[:TAG|@DIGEST]

docker pull ubuntu:18.10    #从docker hub上拉取18.10版本的ubuntu系统

19、docker search [OPTIONS] TERM

docker search ubuntu 	#从docker hub上查找所有可用的ubuntu镜像

20、做镜像,比如在ubuntu上安装一个apache,然后做成一个镜像

1、登录docker hub
	docker login
2、运行ubuntu镜像
	docker run -i -t ubuntu /bin/bash
3、在容器中安装apache
	apt-get update && apt-get install apache
4、退出容器,把容器做成镜像
	docker commit 4fed29523119 softwarebird/apache2	 #4fed29523119为容器ID,softwarebird/apache2为仓库名和镜像名
5、或者做镜像时指定更多信息
	docker commit -m"my image" -a"lzj" 4fed29523119 softwarebird/apache2:0.1
	#-m指定提交的信息,-a指定作者

21、docker build [OPTIONS] PATH | URL | -

    docker build -i -t softwarebird/my_hello /bin/bash

22、将镜像推送到docker hub

    docker push softwarebird/my_hello

23、删除镜像
格式:docker rmi [OPTIONS] IMAGE [IMAGE...]
示例:

    docker rmi 48e8ec9dc407		#48e8ec9dc407为镜像ID
    docker rmi softwarebird/my_hello2		#softwarebird/my_hello2	为镜像名
    docker rmi -f softwarebird/my_hello2 		#-f表示强制删除
    docker rmi `docker images -a -q`	#删除所有镜像

24、查找容器中端口对应的宿主机端口
格式:docker port CONTAINER [PRIVATE_PORT[/PROTO]]

docker port container_name 80   #查询container_name容器中80端口映射在宿主机上的端口

25、导入导出镜像
导入:docker save [OPTIONS] IMAGE [IMAGE...]
导出:docker load [OPTIONS]
示例:

docker save -o hello.zip softwarebird/my_hello
#把镜像保存到hello.zip文件中 
docker load -i hello.zip
#把镜像从hello.zip提取出来,然后用docker images命令可以查看提取的命令

26、镜像打标签
docker tag可以给做好的镜像重新打标签,但是原来的镜像依旧存在。
格式:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
示例:`

docker tag ubuntu:latest ubuntu:19.04
#把latest版本的ubuntu镜像重新打包成19.04版本的ubuntu镜像,然后就存在两个版本的ubuntu镜像`

27、镜像查找
docker search默认从docker hub上查找指定镜像
格式:docker search [OPTIONS] TERM
示例:

		    docker search ubuntu
		    #查找所有的ubuntu镜像

28、创建镜像
格式:docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
示例:

		docker create -it ubuntu:latest
		#最新版的ubuntu镜像创建一个容器,执行命令后,立即返回创建的容器的id。创建后的容器是停止状态的,可以用docker start命令启动创建好的容器	

29、进入容器
当容器以守护进程方式启动后,如果想进入容器操作,例如

	    docker run -idt ubuntu

要想进入容器操作,可以选择如下两种方式:

- attach

	    docker attach stoic_murdock

- exec

	     docker exec -it serene_banach /bin/bash

你可能感兴趣的:(java,docker,容器,ubuntu,数据结构,后端)