一、单一容器管理
### --- 单一容器管理
~~~ 每个容器被创建后,都会分配一个CONTAINER ID 作为容器的唯一标识,
~~~ 后续对容器的启动/停止/修改/删除等所有操作,都是通过CONTAINER ID来完成,
~~~ 偏向于数据库概念中的主键(yuanjian)
docker ps --no-trunc // 查看
docker /stop/start CONTAINERID // 停止
docker start/stop MywordPress // 通过容器别名启动/停止
docker inspect MywordPress // 查看容器所有基本信息
docker logs MywordPress // 查看容器日志
docker stats MywordPress // 查看容器所占用的系统资源
docker exec 容器名 容器内执行的命令 // 容器执行命令
docker exec -it 容器名 /bin/bash // 登入容器的bash
### --- run延伸
--restart=always // 容器的自动启动
-h x.xx.xx // 设置容器的主机名
--dns xx.xx.xx.xx // 设置容器使用的DBS服务器
--dns-search // DNS搜索设置
--add-host hostname:IP // 注入hostname<>IP解析
--rm // 服务停止时自动删除
二、操作示例
[root@localhost ~]# docker ps --no-trunc
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e20dd845a52a04290bb9868b19528207010110fdbeebf079ccca36b13a564e5b wordpress:latest "docker-entrypoint.sh apache2-foreground" 40 seconds ago Up 38 seconds 0.0.0.0:80 //会变成完整的128位
[root@localhost ~]# docker inspect e20dd845a52a // 容器的配置信息 docker inspect+ID/name/别名
"IPAddress": "172.18.0.3", // ip地址
[root@localhost ~]# docker logs e20dd845a52a // 容器的日志信息 docker logs+ID/name/别名
[root@localhost ~]# docker stats e20dd845a52a // 查看容器的信息 docker stats+ID/name/别名
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
e20dd845a52a 0.01% 65.78 MiB / 3.701 GiB 1.74% 1.9 kB / 1.82 kB 0 B / 0 B 6
[root@localhost ~]# docker exec e20dd845a52a ls / // 执行容器内部命令 docker exec+ID/name/别名
[root@localhost ~]# docker exec -it e20dd845a52a /bin/bash // 进入容器内部执行命令操作
root@e20dd845a52a:~# // 此刻在容器内部
### --- docker重启之后,容器默认不会随docker进程重启
[root@localhost ~]# systemctl restart docker.service
[root@localhost ~]# docker ps -a // docker重启之后,容器没有随docker进程同步启动
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e20dd845a52a wordpress:latest "docker-entrypoint..." 2 hours ago Exited (0) 12 seconds ago root_wordpress_1_c874d8f77e58
b848b9de9ae2 mysql:5.7 "docker-entrypoint..." 2 hours ago Exited (0) 2 seconds ago root_db_1_848db55d0695
### --- docker重启之后,容器默认随docker进程重启
[root@localhost ~]# docker run --name db --restart=always --env MYSQL_ROOT_PASSWORD=example -d mariadb //加上--restart=always docker重启之后,容器也会随docker进程同步重启
a0082e85cfbf736f2d7bb85662a76e46b275ca3eec9e69521b6b220787368517
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a0082e85cfbf mariadb "docker-entrypoint..." 5 seconds ago Up 4 seconds 3306/tcp db
### --- 为docker容器设置IP地址:
[root@localhost ~]# docker exec -it db /bin/bash
root@a0082e85cfbf:/# ping jd.com // 此刻网络是不通的
bash: ping: command not found
### --- 指定容器的hostname与IP的对应关系--add-host www.yanqi.com:192.168.1.56
[root@localhost ~]# docker run --name MyWordPress --add-host www.yanqi.com:192.168.1.56 --link db:mysql -p 8080:80 -d wordpress
9a4c8906a29ab95ae2ee6897af35c86adc163a1402a14904338fdece8025f524
[root@localhost ~]# docker exec -it MyWordPress /bin/bash
root@9a4c8906a29a:/var/www/html# cat /etc/hosts
192.168.1.56 www.yanqi.com
### --- 服务停止时自动删除 --rm
[root@localhost ~]# docker run --name MyWordPress --rm --add-host www.yanqi.com:192.168.1.56 --link db:mysql -p 8080:80 -d wordpress
885a25898a17b1713f093f023ac98b3e03b880e7ef5246531b4cac77e9f12458
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
885a25898a17 wordpress "docker-entrypoint..." 30 seconds ago Up 30 seconds 0.0.0.0:8080->80/tcp MyWordPress
[root@localhost ~]# docker stop MyWordPress // 容器停止后,docker ps -a 容器会自动删除,查看不到
MyWordPress
[root@localhost ~]# docker ps -a