简单介绍下docker容器相关的命令。
可以使用--help查看详细的命令。
docker run:创建容器并运行;
[root@*** ~]# docker run --name mysqltest -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7
c800b2b8634db7adb4d177afe459e170d959aca9857b3c8b44d231aa5c1dbb5e
--name mysqltest:容器命名为mysqltest;
-e MYSQL_ROOT_PASSWORD=123456:设置mysql的root密码,创建其他容器是是其它相关命令或者不需要;
-p 3306(主机端口):3306(容器内部端口):端口绑定,或者说映射,将主机端口和容器端口绑定,可以通过主机端口来访问容器内部端口;
-d:后台运行;
docker ps:查看正在运行的容器;
docker ps -a:查看所有容器;
[root@*** ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c800b2b8634d mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, 33060/tcp mysqltest
[root@*** ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c800b2b8634d mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, 33060/tcp mysqltest
aa220201e237 hello-world "/hello" 32 minutes ago Exited (0) 12 minutes ago nostalgic_banzai
docker start name(容器名称-NAMES):启动容器;
docker stop name:关闭容器;
docker restart name:重启容器;
[root@*** ~]# docker stop mysqltest
mysqltest
[root@*** ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c800b2b8634d mysql:5.7 "docker-entrypoint.s…" 14 minutes ago Exited (0) 20 seconds ago mysqltest
aa220201e237 hello-world "/hello" 45 minutes ago Exited (0) 24 minutes ago nostalgic_banzai
[root@*** ~]# docker start mysqltest
mysqltest
[root@*** ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c800b2b8634d mysql:5.7 "docker-entrypoint.s…" 18 minutes ago Up 4 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysqltest
aa220201e237 hello-world "/hello" 49 minutes ago Exited (0) 29 minutes ago nostalgic_banzai
[root@*** ~]# docker restart mysqltest
mysqltest
[root@*** ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c800b2b8634d mysql:5.7 "docker-entrypoint.s…" 18 minutes ago Up 3 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysqltest
aa220201e237 hello-world "/hello" 49 minutes ago Exited (0) 29 minutes ago nostalgic_banzai
docker kill name:杀掉运行中的容器;
[root@*** ~]# docker kill mysqltest
mysqltest
[root@*** ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c800b2b8634d mysql:5.7 "docker-entrypoint.s…" 2 hours ago Exited (137) 2 seconds ago mysqltest
aa220201e237 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago nostalgic_banzai
docker pause name :暂停容器内所有进程;
docker unpause name :恢复容器进程;
[root@*** ~]# docker start mysqltest
mysqltest
[root@*** ~]# docker pause mysqltest
mysqltest
[root@*** ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c800b2b8634d mysql:5.7 "docker-entrypoint.s…" 2 hours ago Up About a minute (Paused) 0.0.0.0:3306->3306/tcp, 33060/tcp mysqltest
aa220201e237 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago nostalgic_banzai
[root@*** ~]# docker unpause mysqltest
mysqltest
[root@*** ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c800b2b8634d mysql:5.7 "docker-entrypoint.s…" 2 hours ago Up 8 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysqltest
aa220201e237 hello-world "/hello" 3 hours ago Exited (0) 2 hours ago nostalgic_banzai
docker create:创建一个容器,不会启动;
[root@***~]# docker create --name mysqltest2 -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 mysql:5.7
ed9d2f85004a3fcd1f1dfbcbd61001fe24e9701a4f693fea49ab061ba395475d
[root@*** ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed9d2f85004a mysql:5.7 "docker-entrypoint.s…" 25 seconds ago Created mysqltest2
c800b2b8634d mysql:5.7 "docker-entrypoint.s…" 3 hours ago Up 51 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysqltest
aa220201e237 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago nostalgic_banzai
docker rm name:删除容器;
[root@***~]# docker rm mysqltest2
mysqltest2
[root@*** ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c800b2b8634d mysql:5.7 "docker-entrypoint.s…" 3 hours ago Up About an hour 0.0.0.0:3306->3306/tcp, 33060/tcp mysqltest
aa220201e237 hello-world "/hello" 4 hours ago Exited (0) 3 hours ago nostalgic_banzai
docker exec -it name /bin/bash:开启交互模式终端或者执行容器内命令;
[root@*** ~]# docker exec -it mysqltest /bin/bash
root@c800b2b8634d:/#
root@c800b2b8634d:/# exit
exit
[root@*** ~]#
docker inspect name(镜像名/容器名):获取镜像或者容器的属性信息;(信息多,直接省略)
[root@*** ~]# docker inspect mysql:5.7
.
.
.
[root@*** ~]# docker inspect mysqltest
.
.
.
docker logs name:查看容器日志
[root@*** ~]# docker logs mysqltest
2019-10-18 09:27:00+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.28-1debian9 started.
2019-10-18 09:27:00+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2019-10-18 09:27:00+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.28-1debian9 started.
2019-10-18 09:27:01+00:00 [Note] [Entrypoint]: Initializing database files
2019-10-18T09:27:01.347139Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
.
.
.
docker export -o xxx.tar name:将容器以xxx.tar文件导出;
[root@*** ~]# docker export -o mysql1.tar mysqltest
[root@*** ~]# ls
anaconda-ks.cfg conf data Dockerfile hello.tar logs mysql1.tar
docker commit -a "xx" -m "xxx" 容器id 镜像仓库:版本:将容器创建镜像,不推荐,因为会产生临时文件;
[root@*** ~]# docker commit -a "su" -m "---test---" c800b2b8634d mysql:su1
sha256:aa121e1e43448582f62878650e20fb73d3eb7fd57e0c3c393cd8226a20b9b643
[root@*** ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql su1 aa121e1e4344 7 seconds ago 437MB
.
.
.
如果有写的不对的地方,请大家多多批评指正,非常感谢!