您的位置 首页 java

java技术Docker容器

1、介绍

容器是Docker的另一个核心概念。

简单地说,容器是镜像的一个运行实例,所不同的是,它带有额外的可写文件层。

如果认为虚拟机是模拟运行的一整套操作系统(提供了运行态环境和其他系统外境)和跑在上面的应用。那么Docker容器就是独立运行的一个或一组应用,以及它的必而运仃环境。

2、查看容器列表

通过docker ps命令查看正在运行的容器列表,需要查询所有的容器需要加-a参数:

docker ps

docker ps -a

3、创建容器

通过docker create 命令可以创建一个容器,这仅仅是创建,并没有启动容器。

用法:

3.1.案例

案例:创建Redis的容器。

docker create -p 16379:6379 –name redis redis:3.0

查看容器列表:

启动容器:

docker start 6e #指定容器的id,只要输入前几位即可

通过客户端进行测试:

至此,第一个docker容器就创建并且已经启动可用了。

创建并且运行容器

上面通过docker create创建了容器,然后通过docker start来启动容器,其实这种做法并不常用。

更常用的是docker run命令,这个命令的意思是创建并且启动容器。

用法:

root@itcast:~# docker run –help

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

Run a command in a new container 在一个新容器中运行一个命令。

Options:

–add-host value Add a custom host-to-IP mapping (host:ip) (default [])

-a, –attach value Attach to STDIN, STDOUT or STDERR (default [])

–blkio-weight value Block IO (relative weight), between 10 and 1000

–blkio-weight-device value Block IO weight (relative device weight) (default [])

–cap-add value Add Linux capabilities (default [])

–cap-drop value Drop Linux capabilities (default [])

–cgroup-parent string Optional parent cgroup for the container

–cidfile string Write the container ID to the file

–cpu-percent int CPU percent (Windows only)

–cpu-period int Limit CPU CFS (Completely Fair Scheduler) period

–cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota

-c, –cpu-shares int CPU shares (relative weight)

–cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)

–cpuset-mems string MEMs in which to allow execution (0-3, 0,1)

-d, –detach Run container in background and print container ID 让容器在后台运行

–detach-keys string Override the key sequence for detaching a container

–device value Add a host device to the container (default [])

–device-read-bps value Limit read rate (bytes per second) from a device (default [])

–device-read-iops value Limit read rate (IO per second) from a device (default [])

–device-write-bps value Limit write rate (bytes per second) to a device (default [])

–device-write-iops value Limit write rate (IO per second) to a device (default [])

–disable-content-trust Skip image verification (default true)

–dns value Set custom DNS servers (default [])

–dns-opt value Set DNS options (default [])

–dns-search value Set custom DNS search domains (default [])

–entrypoint string Overwrite the default ENTRYPOINT of the image

-e, –env value Set environment variables (default [])

–env-file value Read in a file of environment variables (default [])

–expose value Expose a port or a range of ports (default [])

–group-add value Add additional groups to join (default [])

–health-cmd string Command to run to check health

–health-interval duration Time between running the check

–health-retries int Consecutive failures needed to report unhealthy

–health-timeout duration Maximum time to allow one check to run

–help Print usage

-h, –hostname string Container host name

-i, –interactive Keep STDIN open even if not attached

–io-maxbandwidth string Maximum IO bandwidth limit for the system drive (Windows only)

–io-maxiops uint Maximum IOps limit for the system drive (Windows only)

–ip string Container IPv4 address (e.g. 172.30.100.104)

–ip6 string Container IPv6 address (e.g. 2001:db8::33)

–ipc string IPC namespace to use

–isolation string Container isolation technology

–kernel-memory string Kernel memory limit

-l, –label value Set meta data on a container (default [])

–label-file value Read in a line delimited file of labels (default [])

–link value Add link to another container (default [])

–link-local-ip value Container IPv4/IPv6 link-local addresses (default [])

–log-driver string Logging driver for the container

–log-opt value Log driver options (default [])

–mac-address string Container MAC address (e.g. 92:d0:c6:0a:29:33)

-m, –memory string Memory limit

–memory-reservation string Memory soft limit

–memory-swap string Swap limit equal to memory plus swap: ‘-1’ to enable unlimited swap

–memory-swappiness int Tune container memory swappiness (0 to 100) (default -1)

–name string Assign a name to the container

–network string Connect a container to a network (default “default”)

–network-alias value Add network-scoped alias for the container (default [])

–no-healthcheck Disable any container-specified HEALTHCHECK

–oom-kill-disable Disable OOM Killer

–oom-score-adj int Tune host’s OOM preferences (-1000 to 1000)

–pid string PID namespace to use

–pids-limit int Tune container pids limit (set -1 for unlimited)

–privileged Give extended privileges to this container

-p, –publish value Publish a container’s port(s) to the host (default [])

-P, –publish-all Publish all exposed ports to random ports

–read-only Mount the container’s root filesystem as read only

–restart string Restart policy to apply when a container exits (default “no”)

–rm Automatically remove the container when it exits

–runtime string Runtime to use for this container

–security-opt value Security Options (default [])

–shm-size string Size of /dev/shm, default value is 64MB

–sig-proxy Proxy received signals to the process (default true)

–stop-signal string Signal to stop a container, SIGTERM by default (default “SIGTERM”)

–storage-opt value Storage driver options for the container (default [])

–sysctl value Sysctl options (default map[])

–tmpfs value Mount a tmpfs directory (default [])

-t, –tty Allocate a pseudo-TTY

–ulimit value Ulimit options (default [])

-u, –user string Username or UID (format: <name|uid>[:<group|gid>])

–userns string User namespace to use

–uts string UTS namespace to use

-v, –volume value Bind mount a volume (default [])

–volume-driver string Optional volume driver for the container

–volumes-from value Mount volumes from the specified container(s) (default [])

-w, –workdir string Working directory inside the container

4.1案例

创建并且运行一个redis容器,它的端口是16380。

docker run -p 16380:6379 –name redis2 redis:3.0

发现,这个容器已经创建并且运行,但是,它并没有在后台运行,当按下 control + c时,该容器将停止。

为了让容器在后台运行,需要添加参数 -d。

docker run -p 16380:6379 -d –name redis2 redis:3.0

报错,说redis2这个名字的容器已经存在,需要我们删除906的容器或者给新容器重命名。我们重命名试试。

docker run -p 16380:6379 -d –name redis3 redis:3.0

已经创建成功。

进行测试:

测试结果显示,该容器可用。

接下来,我看下当前运行的容器:

可以看到,有3个redis的容器,并且名为redis2的容器已经退出,并没有运行。

那么问题来了,redis2这个容器我不想要了,怎么删除?

5、启动/停止容器

5.1.启动容器

root@itcast:~# docker start –help

Usage: docker start [OPTIONS] CONTAINER [CONTAINER…]

Start one or more stopped containers

Options:

-a, –attach Attach STDOUT/STDERR and forward signals

–detach-keys string Override the key sequence for detaching a container

–help Print usage

-i, –interactive Attach container’s STDIN

用法:docker start 容器名或容器id

5.2. 停止容器

停止容器有2种方式:

1、 docker stop 容器名或容器id

2、 docker kill 容器名或容器id

root@itcast:~# docker stop –help

Usage: docker stop [OPTIONS] CONTAINER [CONTAINER…]

Stop one or more running containers

Options:

–help Print usage

-t, –time int Seconds to wait for stop before killing it (default 10)

root@itcast:~# docker kill –help

Usage: docker kill [OPTIONS] CONTAINER [CONTAINER…]

Kill one or more running containers

Options:

–help Print usage

-s, –signal string Signal to send to the container (default “KILL”)

6、删除容器

通过命令docker rm 删除容器,删除正在运行的容器添加 -f 参数。

root@itcast:~# docker rm –help

Usage: docker rm [OPTIONS] CONTAINER [CONTAINER…]

Remove one or more containers

Options:

-f, –force Force the removal of a running container (uses SIGKILL)

–help Print usage

-l, –link Remove the specified link

-v, –volumes Remove the volumes associated with the container

案例:

docker rm redis2

删除名为redis2的容器。

7、进入容器

有些时候我们需要进入容器内,做一些操作,比如,修改配置文件等。

进入容器,通过命令 docker exec 完成。

root@itcast:~# docker exec –help

Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

Run a command in a running container

-d, –detach Detached mode: run command in the background

–detach-keys Override the key sequence for detaching a container

–help Print usage

-i, –interactive Keep STDIN open even if not attached

–privileged Give extended privileges to the command

-t, –tty Allocate a pseudo-TTY

-u, –user Username or UID (format: <name|uid>[:<group|gid>])

案例:进入redis容器,。

docker exec -it redis /bin/bash

java技术Docker容器

control + d 退出容器。

8、查看日志

通过命令docker logs -f 容器名或id

java技术Docker容器


了解更多内容:

文章来源:智云一二三科技

文章标题:java技术Docker容器

文章地址:https://www.zhihuclub.com/169294.shtml

关于作者: 智云科技

热门文章

评论已关闭

5条评论

  1. A basic amino acid that is found in the formation of serotonin, a substance that tells your body to sleep

  2. Monitor Closely 1 osilodrostat and propofol both increase QTc interval t closed the deal

  3. We suggest using the KDIGO recommendations to reduce the incidence of AKI after cardiac surgery Grade 2C If you must blood pressure control medications come to this world, I, Luck, will be the first knight standing in front of you

  4. J Photochem Photobiol B Biol 2008; 91 125 31 They demonstrate the importance of determining the type of AI induced pain for specific diagnosis, so that the most appropriate type of management can be offered

网站地图