docker基础命令操作
一、容器生命周期管理
1.1 run
语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
实例
[root@localhost ~]# docker run -itd --name nginx nginx:latest
07bf7dab29c8e89da39ea1f4885ecf3d50d80a77d132763d2bf89f0b99133f82
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
07bf7dab29c8 nginx:latest "/docker-entrypoint.…" 41 seconds ago Up 41 seconds 80/tcp nginx
参数说明
-i 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d: 后台运行容器,并返回容器ID;
--name="*****": 为容器指定一个名称;
-P: 随机端口映射,容器内部端口随机映射到主机的端
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
1.2 启动、停止、重启容器
docker start :启动一个或多个已经被停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker stop :停止一个运行中的容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker restart :重启容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]
实例:
##start
[root@localhost ~]# docker run -d nginx:latest
e29956fd49c76bbfef557fbb04dc49097a3213be2e7c69d1300e7019cf13d7ad
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e5c565322a5 nginx:latest "/docker-entrypoint.…" 20 seconds ago Exited (0) 4 seconds ago focused_hugle
[root@localhost ~]# docker start 1e
1e
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e5c565322a5 nginx:latest "/docker-entrypoint.…" About a minute ago Up 5 seconds 80/tcp focused_hugle
## stop
[root@localhost ~]# docker stop 1e
1e
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e5c565322a5 nginx:latest "/docker-entrypoint.…" About a minute ago Exited (0) 4 seconds ago focused_hugle
## restart
[root@localhost ~]# docker restart 1e
1e
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e5c565322a5 nginx:latest "/docker-entrypoint.…" 2 minutes ago Up 3 seconds 80/tcp focused_hugle
1.3 kill——杀掉一个运行中的容器
语法:
docker kill [OPTIONS] CONTAINER [CONTAINER...]
实例:
-s:向容器发送一个信号
[root@localhost ~]# docker kill -s KILL 1e
1e
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e5c565322a5 nginx:latest "/docker-entrypoint.…" 4 minutes ago Exited (137) 5 seconds ago focused_hugle
1.4 rm——删除容器
语法:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
参数:
-f :通过 SIGKILL 信号强制删除一个运行中的容器。
-l :移除容器间的网络连接,而非容器本身。
-v :删除与容器关联的卷。
实例:
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e5c565322a5 nginx:latest "/docker-entrypoint.…" 7 minutes ago Up 1 second 80/tcp focused_hugle
[root@localhost ~]# docker rm -f 1e
1e
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
41dfb0c58ed9 nginx:latest "/docker-entrypoint.…" 13 minutes ago Created nginx
1.5 pause/unpause 命令
pause:暂停容器中所有的进程
docker pause CONTAINER [CONTAINER...]
unpause:恢复容器中所有的进程
docker unpause CONTAINER [CONTAINER...]
实例
[root@localhost ~]# docker pause 41 ####暂停容器nginx:latest提供服务
41
[root@localhost ~]# docker ps -a #### 可以看到虽然是up状态但是处于paused
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
41dfb0c58ed9 nginx:latest "/docker-entrypoint.…" 17 minutes ago Up 14 seconds (Paused) 80/tcp nginx
[root@localhost ~]# docker unpause 41 #### 恢复容器nginx:latest提供服务
41
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
41dfb0c58ed9 nginx:latest "/docker-entrypoint.…" 17 minutes ago Up 27 seconds 80/tcp nginx
exec——在一个运行的容器中执行命令
docker exec [OPTIONS] CONTAINE