Docker容器管理

单一容器管理

docker 启动和停止

docker start CONTAINER ID(or names)
docker stop CONTAINER ID(or names)
查询容器信息

[root@VM_0_7_centos ~]# docker inspect MyWordPress

{
“Id”: “8001906c52748e136ceb316977df775941f382c7d98e8b0ed39f5218b2fc7a0d”,
“Created”: “2018-08-13T06:40:02.467843522Z”,
“Path”: “docker-entrypoint.sh”,
“Args”: [
“apache2-foreground”
],
“State”: {
“Status”: “running”,
“Running”: true,
“Paused”: false,
“Restarting”: false,
“OOMKilled”: false,
“Dead”: false,
“Pid”: 18908,
“ExitCode”: 0,
“Error”: “”,
“StartedAt”: “2018-08-15T10:30:05.109096579Z”,
“FinishedAt”: “2018-08-15T10:29:54.078603712Z”
},
“Image”: “sha256:9414c91da9a8e344d76eeb30669ac8bbce2185491658bcf9ba7300b81e3a32ac”,
“ResolvConfPath”: “/var/lib/docker/containers/8001906c52748e136ceb316977df775941f382c7d98e8b0ed39f5218b2fc7a0d/resolv.conf”,
“HostnamePath”: “/var/lib/docker/containers/8001906c52748e136ceb316977df775941f382c7d98e8b0ed39f5218b2fc7a0d/hostname”,
“HostsPath”: “/var/lib/docker/containers/8001906c52748e136ceb316977df775941f382c7d98e8b0ed39f5218b2fc7a0d/hosts”,
“LogPath”: “”,
“Name”: “/MyWordPress”,
“RestartCount”: 0,
“Driver”: “overlay2”,
“MountLabel”: “”,
“ProcessLabel”: “”,
“AppArmorProfile”: “”,
“ExecIDs”: [
“201a1912d335d11b61371b64bf4650688f41677e2c169869a9a5c6d6b7480f4e”
],
“HostConfig”: {
“Binds”: null,
“ContainerIDFile”: “”,
“LogConfig”: {
“Type”: “journald”,
“Config”: {}
},
“NetworkMode”: “default”,
“PortBindings”: {
“80/tcp”: [
{
“HostIp”: “”,
“HostPort”: “8080”
}
]
},
“RestartPolicy”: {
“Name”: “no”,
“MaximumRetryCount”: 0
},
“AutoRemove”: false,
“VolumeDriver”: “”,
“VolumesFrom”: null,
“CapAdd”: null,
“CapDrop”: null,
“Dns”: [],
“DnsOptions”: [],
“DnsSearch”: [],
“ExtraHosts”: null,
“GroupAdd”: null,
“IpcMode”: “”,
“Cgroup”: “”,
“Links”: [
“/db:/MyWordPress/mysql”
],
“OomScoreAdj”: 0,
“PidMode”: “”,
“Privileged”: false,
“PublishAllPorts”: false,
“ReadonlyRootfs”: false,
“SecurityOpt”: null,
“UTSMode”: “”,
“UsernsMode”: “”,
“ShmSize”: 67108864,
“Runtime”: “docker-runc”,
“ConsoleSize”: [
0,
0
],
“Isolation”: “”,
“CpuShares”: 0,
“Memory”: 0,
“NanoCpus”: 0,
“CgroupParent”: “”,
“BlkioWeight”: 0,
“BlkioWeightDevice”: null,
“BlkioDeviceReadBps”: null,
“BlkioDeviceWriteBps”: null,
“BlkioDeviceReadIOps”: null,
“BlkioDeviceWriteIOps”: null,
“CpuPeriod”: 0,
“CpuQuota”: 0,
“CpuRealtimePeriod”: 0,
“CpuRealtimeRuntime”: 0,
“CpusetCpus”: “”,
“CpusetMems”: “”,
“Devices”: [],
“DiskQuota”: 0,
“KernelMemory”: 0,
“MemoryReservation”: 0,
“MemorySwap”: 0,
“MemorySwappiness”: -1,
“OomKillDisable”: false,
“PidsLimit”: 0,
“Ulimits”: null,
“CpuCount”: 0,
“CpuPercent”: 0,
“IOMaximumIOps”: 0,
“IOMaximumBandwidth”: 0
},
“GraphDriver”: {
“Name”: “overlay2”,
“Data”: {
“LowerDir”: “/var/lib/docker/overlay2/c3331c3d769b3aef7ad5111ab87d1b69d68789fbf858a33793b831bd9ee010d4-init/diff:/var/lib/docker/overlay2/886a45d928c1fbb1daab974f3db8acae77e0d341b33f9cb9f20d80861f7dde98/diff:/var/lib/docker/overlay2/91b6c68ce1ccf0f6ac02e088d4234be2b10ad796b8a72e8d9eb5b789ce9ea783/diff:/var/lib/docker/overlay2/c37cd3fcb3f5fe96f68c752c3ff72366ad420606b281842463ae5488b6205de7/diff:/var/lib/docker/overlay2/4f9f0adc1ccdd6b33b6f7f593d5694a13c3a9ba55eecec5e41bb0f8f5282c5cb/diff:/var/lib/docker/overlay2/3949878b5ba78546d6ebaa1840c5397b8358254b11dc39887c988cbfb6a844e3/diff:/var/lib/docker/overlay2/0822b49dcdcc87f617050951cfa8b99fae2f6d5e5928f808b7d6ee1f5dbd7800/diff:/var/lib/docker/overlay2/557c769e0e75ad44888f42074eb8a0c0b072d401efd984b9c360b709a0c7ffd9/diff:/var/lib/docker/overlay2/06167ee6d2675bd9483c8012bcce0891673dc6a0d616dc018bb965afb3ee13bd/diff:/var/lib/docker/overlay2/fd0f86fe4b74ef5a7fe71d1e39a35c0a3f68344e173790d752d5925ecec19011/diff:/var/lib/docker/overlay2/693bc8c52e05ec7b4d56631e9fe7fe78a8e1fa24f112b6b9f9e400ee0a477b02/diff:/var/lib/docker/overlay2/14bf409bd62a97bb3d419136d17da15d38e28e2d5ba003c8a1fc796e7539b79d/diff:/var/lib/docker/overlay2/948b88e53e72e159eaf5d1b45a0a9add0b5207ae0cf6656cb6922e62e23dc73a/diff:/var/lib/docker/overlay2/a7d266cf9882e63fc1566190fea6a856f6e15b232546db8ac67d9c58cc2b49b5/diff:/var/lib/docker/overlay2/71b9f4ad2dd11a358ca05786a5b82a74276594b46dbec58800277a1f817f2fd4/diff:/var/lib/docker/overlay2/0415dc1744788943ad25e4d53c2cfa01c0c26def64886f48983cef22f8678f99/diff:/var/lib/docker/overlay2/ae9362ba605657031c49099770f79ac8e86e5b201ddebca3871522d21e452239/diff:/var/lib/docker/overlay2/d9c309c8a6351587c11b2c5e75516e5079b1ddff5bfba2f6f5c96ef1979690bb/diff:/var/lib/docker/overlay2/b067c7a212c2cb67709e5cf66883b9fcdb54b8e0c11cfc345798ba899f087fd1/diff:/var/lib/docker/overlay2/2605dc18f93e25b1f629a04fbe6ffcb9f3570f879830b137dd6e2bf49148980b/diff:/var/lib/docker/overlay2/c9eecb3825b8ecf29689f78fc9cbb5cc42b565d62bf9dd3cd31da90030b8b41b/diff”,
“MergedDir”: “/var/lib/docker/overlay2/c3331c3d769b3aef7ad5111ab87d1b69d68789fbf858a33793b831bd9ee010d4/merged”,
“UpperDir”: “/var/lib/docker/overlay2/c3331c3d769b3aef7ad5111ab87d1b69d68789fbf858a33793b831bd9ee010d4/diff”,
“WorkDir”: “/var/lib/docker/overlay2/c3331c3d769b3aef7ad5111ab87d1b69d68789fbf858a33793b831bd9ee010d4/work”
}
},
“Mounts”: [
{
“Type”: “volume”,
“Name”: “652e724dc1168c3615aca09d5fe11508f74dda398d9777457947e00519548f2d”,
“Source”: “/var/lib/docker/volumes/652e724dc1168c3615aca09d5fe11508f74dda398d9777457947e00519548f2d/_data”,
“Destination”: “/var/www/html”,
“Driver”: “local”,
“Mode”: “”,
“RW”: true,
“Propagation”: “”
}
],
“Config”: {
“Hostname”: “8001906c5274”,
“Domainname”: “”,
“User”: “”,
“AttachStdin”: false,
“AttachStdout”: false,
“AttachStderr”: false,
“ExposedPorts”: {
“80/tcp”: {}
},
“Tty”: false,
“OpenStdin”: false,
“StdinOnce”: false,
“Env”: [
“PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”,
“PHPIZE_DEPS=autoconf \t\tdpkg-dev \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkg-config \t\tre2c”,
“PHP_INI_DIR=/usr/local/etc/php”,
“APACHE_CONFDIR=/etc/apache2”,
“APACHE_ENVVARS=/etc/apache2/envvars”,
“PHP_EXTRA_BUILD_DEPS=apache2-dev”,
“PHP_EXTRA_CONFIGURE_ARGS=–with-apxs2 –disable-cgi”,
“PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2”,
“PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2”,
“PHP_LDFLAGS=-Wl,-O1 -Wl,–hash-style=both -pie”,
“GPG_KEYS=1729F83938DA44E27BA0F4D3DBDB397470D12172 B1B44D8F021E4E2D6021E995DC9FF8D3EE5AF27F”,
“PHP_VERSION=7.2.8”,
“PHP_URL=https://secure.php.net/get/php-7.2.8.tar.xz/from/this/mirror“,
“PHP_ASC_URL=https://secure.php.net/get/php-7.2.8.tar.xz.asc/from/this/mirror“,
“PHP_SHA256=53ba0708be8a7db44256e3ae9fcecc91b811e5b5119e6080c951ffe7910ffb0f”,
“PHP_MD5=”,
“WORDPRESS_VERSION=4.9.8”,
“WORDPRESS_SHA1=0945bab959cba127531dceb2c4fed81770812b4f”
],
“Cmd”: [
“apache2-foreground”
],
“ArgsEscaped”: true,
“Image”: “wordpress”,
“Volumes”: {
“/var/www/html”: {}
},
“WorkingDir”: “/var/www/html”,
“Entrypoint”: [
“docker-entrypoint.sh”
],
“OnBuild”: null,
“Labels”: {}
},
“NetworkSettings”: {
“Bridge”: “”,
“SandboxID”: “39f3704ff1645d3b924cf1773c59306d0b02da862d6c717a3dcfaf0b2285e57b”,
“HairpinMode”: false,
“LinkLocalIPv6Address”: “”,
“LinkLocalIPv6PrefixLen”: 0,
“Ports”: {
“80/tcp”: [
{
“HostIp”: “0.0.0.0”,
“HostPort”: “8080”
}
]
},
“SandboxKey”: “/var/run/docker/netns/39f3704ff164”,
“SecondaryIPAddresses”: null,
“SecondaryIPv6Addresses”: null,
“EndpointID”: “1e68244b1299f6838838985ec6166a28a9db10cf1db3810619c26a7d2fb7ef7d”,
“Gateway”: “172.18.0.1”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“IPAddress”: “172.18.0.3”,
“IPPrefixLen”: 16,
“IPv6Gateway”: “”,
“MacAddress”: “02:42:ac:12:00:03”,
“Networks”: {
“bridge”: {
“IPAMConfig”: null,
“Links”: null,
“Aliases”: null,
“NetworkID”: “5c7b1fba68745266b02e0eaed57405becd7955a612ef01be9395c8b66e1e90ac”,
“EndpointID”: “1e68244b1299f6838838985ec6166a28a9db10cf1db3810619c26a7d2fb7ef7d”,
“Gateway”: “172.18.0.1”,
“IPAddress”: “172.18.0.3”,
“IPPrefixLen”: 16,
“IPv6Gateway”: “”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“MacAddress”: “02:42:ac:12:00:03”
}
}
}
}
]

查找MyWordPress and ip information

[root@VM_0_7_centos ~]# docker inspect -f {{.State.Status}} MyWordPress
running
[root@VM_0_7_centos ~]# docker inspect -f {{.NetworkSettings.IPAddress}} MyWordPress
172.18.0.3
[root@VM_0_7_centos ~]#

查看docker的CPU,使用率,内存和网络

[root@VM_0_7_centos ~]# docker stats MyWordPress
CONTAINER           CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
MyWordPress         0.00%               57 MiB / 1.796 GiB   3.10%               2.12 MB / 1.86 MB   1.7 GB / 0 B        8

CONTAINER           CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
MyWordPress         0.00%               57 MiB / 1.796 GiB   3.10%               2.12 MB / 1.86 MB   1.7 GB / 0 B        8

CONTAINER           CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
MyWordPress         0.00%               57 MiB / 1.796 GiB   3.10%               2.12 MB / 1.86 MB   1.7 GB / 0 B        8

CONTAINER           CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
MyWordPress         0.00%               57 MiB / 1.796 GiB   3.10%               2.12 MB / 1.86 MB   1.7 GB / 0 B        8

CONTAINER           CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
MyWordPress         0.00%               57 MiB / 1.796 GiB   3.10%               2.12 MB / 1.86 MB   1.7 GB / 0 B        8

CONTAINER           CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
MyWordPress         0.00%               57 MiB / 1.796 GiB   3.10%               2.12 MB / 1.86 MB   1.7 GB / 0 B        8

查看MyWordPress容器内启动了哪些进程

[root@VM_0_7_centos ~]# docker exec MyWordPress ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.3 390016  7288 ?        Ss   Aug15   0:02 apache2 -DFOREGROUND
www-data    66  0.0  1.0 395224 20172 ?        S    Aug15   0:00 apache2 -DFOREGROUND
www-data    67  0.0  1.4 470144 26660 ?        S    Aug15   0:00 apache2 -DFOREGROUND
www-data    68  0.0  1.3 471988 24908 ?        S    Aug15   0:00 apache2 -DFOREGROUND
www-data    69  0.0  1.1 395228 22580 ?        S    Aug15   0:00 apache2 -DFOREGROUND
www-data    70  0.0  1.1 395248 22296 ?        S    Aug15   0:00 apache2 -DFOREGROUND
www-data    71  0.0  1.0 395196 19336 ?        S    Aug15   0:00 apache2 -DFOREGROUND
www-data    72  0.0  1.0 395212 20128 ?        S    Aug15   0:00 apache2 -DFOREGROUND
root       109  0.0  0.0  36628  1588 ?        Rs   11:27   0:00 ps aux

进入容器

[root@VM_0_7_centos ~]# docker exec -it MyWordPress /bin/bash
root@8001906c5274:/var/www/html# pwd
/var/www/html
root@8001906c5274:/var/www/html# ls
index.php    wp-activate.php     wp-comments-post.php  wp-content   wp-links-opml.php  wp-mail.php  wp-trackback.php
license.txt  wp-admin        wp-config-sample.php  wp-cron.php  wp-load.php        wp-settings.php  xmlrpc.php
readme.html  wp-blog-header.php  wp-config.php         wp-includes  wp-login.php       wp-signup.php
root@8001906c5274:/var/www/html# exit
exit
[root@VM_0_7_centos ~]#

多容器管理

比如WordPress有两部分组成:Apache Web and Mariadb
启动顺序:
docker start db
docker start MyWordPress

停止顺序:
docker stop db
docker stop MyWordPress

Docker Compose —-容器的编排工具,它允许用户在一个模板中定义一组相关联的应用容器。

Install Compose on Linux systems
1.Run this command to download the latest version of Docker Compose:

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

2.Apply executable permissions to the binary:

sudo chmod +x /usr/local/bin/docker-compose

3.Test the installation.

[root@VM_0_7_centos ~]# /usr/local/bin/docker-compose --version
docker-compose version 1.22.0, build f46880fe

例如:使用Docker Compose来管理WordPress项目
首先,我们把WordPress项目原有的两个容器停掉
[root@VM_0_7_centos ~]# docker stop db MyWordPress
创建一个项目文件夹~/wordpress,在文件夹下创建一个叫docker-compose.yml的文件,内容如下:

[root@VM_0_7_centos ~]# ls
grafana-5.1.1-1.x86_64.rpm  test  wordpress  zabbix-agent-3.4.8-1.el7.x86_64.rpm  zabbix-release-3.4-2.el7.noarch.rpm
[root@VM_0_7_centos ~]# cat wordpress/docker-compose.yml 
wordpress:
 image: wordpress
 links:
  - db:mysql
 ports:
  - 8080:80
db:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: example

–links(容器互联),-ports(端口映射),-environment(环境变量设置)

创建和启动WordPress服务,生成新的NAMES并且服务UP

[root@VM_0_7_centos ~]# cd wordpress && docker-compose up
[root@VM_0_7_centos ~]# docker ps -a
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS                      PORTS                                                   NAMES
eed8e51c7189        wordpress                     "docker-entrypoint..."   30 minutes ago      Up 30 minutes               0.0.0.0:8080->80/tcp                                    wordpress_wordpress_1
f4ad894f2087        mariadb                       "docker-entrypoint..."   30 minutes ago      Up 30 minutes               3306/tcp                                                wordpress_db_1
aca92654af96        sameersbn/gitlab:8.4.4        "/sbin/entrypoint...."   About an hour ago   Up About an hour            443/tcp, 0.0.0.0:10022->22/tcp, 0.0.0.0:10080->80/tcp   gitlab
e92b61cf18c7        sameersbn/redmine:3.2.0-4     "/sbin/entrypoint...."   9 days ago          Up About an hour            443/tcp, 0.0.0.0:10083->80/tcp                          redmine
e038010f4bea        sameersbn/postgresql:9.4-12   "/sbin/entrypoint.sh"    9 days ago          Up About an hour            5432/tcp                                                postgresql-redmine
511be91cca0a        sameersbn/redis:latest        "/sbin/entrypoint.sh"    10 days ago         Up About an hour            6379/tcp                                                gitlab-redis
e9bba5e833b6        sameersbn/postgresql:9.4-12   "/sbin/entrypoint.sh"    10 days ago         Up About an hour            5432/tcp                                                gitlab-postgre-sql
8001906c5274        wordpress                     "docker-entrypoint..."   10 days ago         Exited (0) 33 minutes ago                                                           MyWordPress
da706ccdc499        mariadb                       "docker-entrypoint..."   10 days ago         Exited (0) 33 minutes ago                                                           db

后续启动方式:

[root@VM_0_7_centos ~]# cd wordpress/
[root@VM_0_7_centos wordpress]# docker-compose start
Starting db        ... done
Starting wordpress ... done
[root@VM_0_7_centos wordpress]# docker-compose stop
Stopping wordpress_wordpress_1 ... done
Stopping wordpress_db_1        ... done

例如:使用Docker Compose来管理redmine项目,编写.yml file

[root@VM_0_7_centos redmine]# cat docker-compose.yml 
postgresql:
  image: sameersbn/postgresql:9.4-12
  environment:
    - DB_NAME=redmine_production
    - DB_USER=redmine
    - DB_PASS=password

redmine:
  image: sameersbn/redmine:3.2.0-4
  links:
    - postgresql:postgresql
  ports:
    - "10083:80"
  environment:
    - REDMINE_POST=10083
[root@VM_0_7_centos redmine]# pwd
/root/redmine
[root@VM_0_7_centos redmine]#

执行新容器组的创建和启动。

[root@VM_0_7_centos redmine]# docker-compose up -d
[root@VM_0_7_centos redmine]# docker-compose start
Starting postgresql ... done
Starting redmine    ... done
[root@VM_0_7_centos redmine]# docker-compose stop
Stopping redmine_redmine_1    ... done
Stopping redmine_postgresql_1 ... done
[root@VM_0_7_centos redmine]# docker ps -a
CONTAINER ID        IMAGE                         COMMAND                  CREATED              STATUS                       PORTS                                                   NAMES
f3e8083dc3d5        sameersbn/redmine:3.2.0-4     "/sbin/entrypoint...."   About a minute ago   Exited (137) 5 seconds ago                                                           redmine_redmine_1
303f49fbe4b7        sameersbn/postgresql:9.4-12   "/sbin/entrypoint.sh"    About a minute ago   Exited (0) 3 seconds ago                                                             redmine_postgresql_1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值