查看本地的容器进程
[root@ip-10-0-0-45 ec2-user]# docker ps -a //将所有进程列出,包括终止的
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b1c240413b16 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago boring_goodall
d39a7729d8fb hello-world "/hello" 3 hours ago Exited (0) 3 hours ago fervent_tesla
[root@ip-10-0-0-45 ec2-user]# docker ps //列出目前进行中的进程
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
启动容器
docker run是日常用的最频繁用的命令之一,同样也是较为复杂的命令之一
命令格式: docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
OPTIONS :选项
-i:表示启动-一个可交互的容器, 并持续打开标准输入
-t:表示使用终端关联到容器的标准输入输出上
-d :表示将容器放置后台运行
–rm:退出后即删除容器
–name :表示定义容器唯一名称
IMAGE :表示要运行的镜像
COMMAND :表示启动容器时要运行的命令*
ARG:参数
[root@ip-10-0-0-45 ec2-user]# docker run -ti 58440236/alpine:v3.10.3 /bin/sh
Unable to find image '58440236/alpine:v3.10.3' locally
v3.10.3: Pulling from 58440236/alpine
89d9c30c1d48: Pull complete
Digest: sha256:e4355b66995c96b4b468159fc5c7e3540fcef961189ca13fee877798649f531a
Status: Downloaded newer image for 58440236/alpine:v3.10.3
/ #
//重新开一个终端
[root@ip-10-0-0-45 ec2-user]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8835235c1cee 58440236/alpine:v3.10.3 "/bin/sh" 7 minutes ago Up 7 minutes cool_gauss
//后台运行容器
[root@ip-10-0-0-45 ec2-user]# docker run -d 58440236/alpine:v3.10.3 /bin/sleep 300
cb66fdcff2695c69711b45fff615112eb517593316e7e0608abd275ec3712cc1
[root@ip-10-0-0-45 ec2-user]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb66fdcff269 58440236/alpine:v3.10.3 "/bin/sleep 300" 5 seconds ago Up 4 seconds romantic_mcnulty
[root@ip-10-0-0-45 ec2-user]# ps aux|grep sleep|grep -v grep //查看宿主进程
root 3314 0.7 0.0 1552 4 ? Ss 09:10 0:00 /bin/sleep 300
进入容器
[root@ip-10-0-0-45 ec2-user]# docker exec -ti cb66fdcff269 /bin/sh
/ # ps
PID USER TIME COMMAND
1 root 0:00 /bin/sleep 300
7 root 0:00 /bin/sh
14 root 0:00 ps
/ #
停止容器
[root@ip-10-0-0-45 ec2-user]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb66fdcff269 58440236/alpine:v3.10.3 "/bin/sleep 300" 3 minutes ago Up 3 minutes romantic_mcnulty
[root@ip-10-0-0-45 ec2-user]# docker stop cb66fdcff269
cb66fdcff269
[root@ip-10-0-0-45 ec2-user]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb66fdcff269 58440236/alpine:v3.10.3 "/bin/sleep 300" 3 minutes ago Exited (137) 4 seconds ago romantic_mcnulty
8835235c1cee 58440236/alpine:v3.10.3 "/bin/sh" 19 minutes ago Exited (0) 9 minutes ago cool_gauss
b1c240413b16 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago boring_goodall
d39a7729d8fb hello-world "/hello" 4 hours ago Exited (0) 4 hours ago fervent_tesla
[root@ip-10-0-0-45 ec2-user]# docker start d39a7729d8fb //开始容器进程
d39a7729d8fb
[root@ip-10-0-0-45 ec2-user]# docker restart d39a7729d8fb//重启容器进程
d39a7729d8fb
删除容器
[root@ip-10-0-0-45 ec2-user]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb66fdcff269 58440236/alpine:v3.10.3 "/bin/sleep 300" 7 minutes ago Exited (137) 4 minutes ago romantic_mcnulty
8835235c1cee 58440236/alpine:v3.10.3 "/bin/sh" 23 minutes ago Exited (0) 13 minutes ago cool_gauss
b1c240413b16 hello-world "/hello" 4 hours ago Exited (0) 4 hours ago boring_goodall
d39a7729d8fb hello-world "/hello" 4 hours ago Exited (0) 2 minutes ago fervent_tesla
[root@ip-10-0-0-45 ec2-user]# docker rm cb66fdcff269
cb66fdcff269
[root@ip-10-0-0-45 ec2-user]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8835235c1cee 58440236/alpine:v3.10.3 "/bin/sh" 23 minutes ago Exited (0) 13 minutes ago cool_gauss
b1c240413b16 hello-world "/hello" 4 hours ago Exited (0) 4 hours ago boring_goodall
d39a7729d8fb hello-world "/hello" 4 hours ago Exited (0) 2 minutes ago fervent_tesla
保存镜像
[root@alice ~]# docker run -d --name alpine_sleep docker.io/mmdghh/alpine:latest /bin/sleep 300s
c3d1aa7a1bc2df47f47621f16e420883b334ef8e242349f1f734ad9cb4533968
[root@alice ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3d1aa7a1bc2 mmdghh/alpine:latest "/bin/sleep 300s" 5 seconds ago Up 4 seconds alpine_sleep
[root@alice ~]# docker exec -it c3d1aa7a1bc2 /bin/sh
/ # ls
bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
/ # echo "hello world" >1.txt
/ # ls
1.txt bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
/ # [root@alice ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3d1aa7a1bc2 mmdghh/alpine:latest "/bin/sleep 300s" 45 seconds ago Up 44 seconds alpine_sleep
[root@alice ~]# docker run -it docker.io/mmdghh/alpine:latest /bin/sh
/ # ls
bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
/ #
写入到容器的文件并不会保存在镜像里
-p 保存到执行命令这一时刻的内容 之后更新的不会报错
[root@alice ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3d1aa7a1bc2 mmdghh/alpine:latest "/bin/sleep 300s" 5 minutes ago Up 4 minutes alpine_sleep
[root@alice ~]# docker commit -p alpine_sleep docker.io/mmdghh/alpine:v_1.txt
sha256:11be5214792460b1e258a6d6e7dbca5dccfddce0d438c0ad9b04d78b147006e0
[root@alice ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mmdghh/alpine v_1.txt 11be52147924 8 seconds ago 5.55MB
alpine latest 389fef711851 3 weeks ago 5.58MB
hello-world latest bf756fb1ae65 12 months ago 13.3kB
mmdghh/alpine latest 965ea09ff2eb 14 months ago 5.55MB
[root@alice ~]# docker run -it docker.io/mmdghh/alpine:v_1.txt /bin/sh
/ # ls
1.txt bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
/ # cat 1.txt
hello world
/ # [root@alice ~]#
导入导入容器镜像
导出: docker save image_name/image_id > xxx.tar
导入: docker load -i xxx.tar 或 docker load < xxx.tar
查看容器日志
[root@ip-10-0-0-45 ec2-user]# docker logs b1c240413b16
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/